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

С++ для начинающих

Войти
Регистрация
Восстановить пароль
 
Saddiel
7 / 7 / 0
Регистрация: 02.11.2012
Сообщений: 152
#1

Определить натуральное число не больше заданного n. Написать комментарии - C++

15.04.2013, 03:57. Просмотров 384. Ответов 2
Метки нет (Все метки)

Здравствуйте. Определить натуральное число не больше заданного n с наибольшей суммой делителей. Использовать функцию вычисления суммы делителей числа. Программа есть, может кто-нибудь написать какие-либо комментарии к строчкам, дабы мне стало более понятно и все "как надо". Заранее спасибо..

C++
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
#include <stdio.h>
 
int divsumm(int n){
        int res=0;
        for(int i=2;i<n;i++)
                if(!(n%i))
                        res+=i;
        return res;
}
 
int main(){
        int n, max=0,maxsum=0;
        scanf("%u",&n);
        for(int i=1;i<n;i++){
                int sum=divsumm(i);
                if(sum>maxsum){
                        maxsum=sum;
                        max=i;
                }
        }
        printf("%u\n",max);
        return 0;
}
Добавлено через 8 часов 22 минуты
Можете хоть некоторые моменты подсказать?
Similar
Эксперт
41792 / 34177 / 6122
Регистрация: 12.04.2006
Сообщений: 57,940
15.04.2013, 03:57     Определить натуральное число не больше заданного n. Написать комментарии
Посмотрите здесь:

Найти первое натуральное число,квадрат которого больше n - C++
Дано число n. Найти первое натуральное число,квадрат которого больше n Заранее всем, кто откликнулся, ОГРОМНОЕ спасибо

Найти натуральное число из заданного диапозона с максимальной суммой делителей - C++
Найти натуральное число, лежащее в диапозоне от 1 до 10000 с максимальной суммой делителей. Почему программа не запускается? Что-то не...

Определить время, на одну секунду больше заданного. - C++
Задано время в часах, минутах и секундах (h, m, s) (0 ≤ h ≤ 23, 0 ≤ m, s ≤ 59). Определить время, на одну секунду больше заданного!

Дано натуральное число. Определить номер цифры «8» - C++
Дано натуральное число. Определить номер цифры «8» в нем, считая от конца числа. Если такой цифры нет, ответом должно быть число 0,...

Определить все треугольники Герона, длины сторон которых больше заданного натурального N - C++
Треугольники, длины сторон и площади которых являются натуральными числами, называются треугольниками Герона (например, треугольники со...

Дано натуральное число n. Определить количество цифр в числе n - C++
Дано натуральное число n. Определить количество цифр в числе n.

Дано натуральное число k. Определить k-тую цифру последовательности - C++
Ребят привет. Помогите плиз. В общем вот задание: Дано натуральное число k. Определить k-тую цифру последовательности, в которой...

Определить, является натуральное число четным или нечетным - C++
2) Определить, является натуральное число четным или нечетным. При решении задачи составить схему программы и реализовать программу на...

Дано натуральное число P. Определить все совершенные числа, не превосходящие P - C++
Дано натуральное число P. Определить все совершенные числа, не превосходящие P. после паскаля никак не въеду что к чему:( ...

Задано натуральное число n . Написать программу вычисления значения выражения.Очень нада)Спасибо! - C++
1+1/2+1/2^2+1/( 2^3 )+…+ 1/( 2^n ) Пользуйтсь редактором внизу страницы y=\sum_{i=0}^{n}\frac{1}{{2}^{i}}


Искать еще темы с ответами

Или воспользуйтесь поиском по форуму:
После регистрации реклама в сообщениях будет скрыта и будут доступны все возможности форума.
Xfaider
11 / 11 / 1
Регистрация: 27.10.2012
Сообщений: 26
15.04.2013, 09:32     Определить натуральное число не больше заданного n. Написать комментарии #2
C++
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
#include <stdio.h>
 
int divsumm(int n){
        int res=0; 
        for(int i=2;i<n;i++)      //цилк от 2 до числа
                if(!(n%i))        //если число делиться нацело
                        res+=i;   //то увеличиваем сумму делителей
        return res; 
}
 
int main(){
        int n, max=0,maxsum=0;
        scanf("%u",&n);
        for(int i=1;i<n;i++){       //цикл от 1 до введенного числа
                int sum=divsumm(i); //вычисляем новую сумму делителей
                if(sum>maxsum){     //если она больше уже имеющийся
                        maxsum=sum; //задаем новую макс. сумму
                        max=i;      //запоминаем элемент с макс. суммой делителей
                }
        }
        printf("%u\n",max);
        return 0;
}
Остальное, я надеюсь, понятно
Saddiel
7 / 7 / 0
Регистрация: 02.11.2012
Сообщений: 152
15.04.2013, 16:36  [ТС]     Определить натуральное число не больше заданного n. Написать комментарии #3
спасибо, конечно, но я уже рассказал все правильно. благодарю
Ответ Создать тему
Опции темы

КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin® Version 3.8.9
Copyright ©2000 - 2017, vBulletin Solutions, Inc.
Рейтинг@Mail.ru