Форум программистов, компьютерный форум CyberForum.ru

Найти число с максимальной суммой делителей - C++

Войти
Регистрация
Восстановить пароль
Другие темы раздела
C++ Реализовать шаблон класса для хранения динамического списка http://www.cyberforum.ru/cpp-beginners/thread668608.html
Нужно реализовать: 1.Операции вставки элемента в начало списка 2.Операцию удаления первого элемента 3.Деструктор высвобождающий всю выделенную память Пример template <typename T> class List { private: struct element
C++ Запись в бинарный файл работает не коректно, где ошибка? Здравствуйте, делаю лабораторную работу, запись структуры Students в бинарный файл. код написал, но он работает корректно только при первом вводе, при последующих почему то пропускает запись фамилии, почему так происходит разобраться не могу, помогите пожалуйста. Код ниже: int Create_file(FILE *data) { Students person; fseek(data,0,SEEK_END); // указатель в конец файла puts(" Ввод... http://www.cyberforum.ru/cpp-beginners/thread668578.html
Распараллеливание циклов с ипользованием OpenMP C++
Есть проблема , получился парадокс - время роботы программы с распараллеливанием дольше на 1 сек чем без распараллеливания, ожидалось наоборот . Для наглядности сделал матрицу 1000х40, чтоб потянуть время. #include <stdio.h> #include <iostream> #include <conio.h> #include <time.h> #include <stdlib.h> #include <omp.h> using namespace std;
C++ Библиотека для xml парсинга
Доброго времени суток. У меня появилась необходимость чтения xml из потока (файлы будут находится на другой машине). Библиотеки, которые я знаю, вроде, поддерживают только полную загрузку документа xml, а уже после этого его считывания. Подскажите, пожалуйста, какую-нибудь библиотеку, если она есть, которая бы удовлетворяла моим потребностям, желательно с лицензией MIT или ей подобной. ...
C++ sizeof http://www.cyberforum.ru/cpp-beginners/thread668553.html
Подскажите пожалуйста что делаю не так? в базовом классе gameElement, имеется матрица указателей на базовый класс: gameElement* arr; есть класс наследник: wall. В конструкторе класса wall имеются такие строчки: wall::wall(void) { wallCharacteristics.movementOpportunity = false; arr = new wall;
C++ Создание на C++ программы с MySQL Всем привет! Слышал что на этом форуме могут помочь написать программку. Задача: 1) Программа определяет разрядность и копирует ключ реестра. 2) Запускает файл другой программы и перед запуском возвращает ключ если тот сменился и делает POST запрос в б.д. (MySQL) Сразу говорю я чайник :) Есть вознаграждение за помощь. Мой скайп: trali-vali-pasatigi подробнее

Показать сообщение отдельно
Thinker
Эксперт C++
4221 / 2195 / 150
Регистрация: 26.08.2011
Сообщений: 3,802
Записей в блоге: 5
11.10.2012, 13:38     Найти число с максимальной суммой делителей
C
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
#include<stdio.h>
unsigned long Sum(unsigned long a)
{
   unsigned long sum = 1, k = 1, i;
   if (a == 1)
      return a;
   while ((a & 1) == 0)
   {
      k <<= 1;
      a >>= 1;
   }
   k = (k << 1) - 1;
   if (a == 1)
      return k;
   else
      sum = k;
   for(i = 3; i*i <= a; i += 2)
   {
      k = 1;
      while(a % i == 0)
      {
         k *= i;
         a /= i;
      }
      if (k > 1)
         sum *= ((k * i) - 1)/(i - 1);
   }
   if (a > 1)
      sum *= a + 1;
   return sum;
}
 
int main()
{
   unsigned long n, i, max, a, buf;
   scanf("%lu", &n);
   max = a = 0;
   for(i = 1; i <= n; i++)
      if ((buf = Sum(i)) > max)
      {
         max = buf;
         a = i; 
      }
   printf("%lu\n", a);
   return 0;    
}
можно проще, но будет работать медленнее.
C
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
#include<stdio.h>
 
unsigned long Sum(unsigned long a, unsigned long i)
{
   return a == i ? 1 : (Sum(a, i + 1) + ((a % i) ? 0 : i));  
}
 
int main()
{
   unsigned long n, i, max, a, buf;
   scanf("%lu", &n);
   max = a = 0;
   for(i = 1; i <= n; i++)
      if ((buf = Sum(i, 1)) > max)
      {
         max = buf;
         a = i; 
      }
   printf("%lu\n", a);
   return 0;    
}
 
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin® Version 3.8.9
Copyright ©2000 - 2017, vBulletin Solutions, Inc.
Рейтинг@Mail.ru