Другие языки программирования и технологии

нужна полная прога на си для задачи. найти натуральное число от1 до 10000 с максимальной суммой делителеи.

Задачку решил на 1С, на Си лень переводить))) )

Функция СуммаДелителей (ии)
сс = 0;
Для кк = 2 По Цел (Sqrt(ии) ) Цикл
Если Цел (ии/кк) = ии/кк Тогда
сс = сс + кк;
Сообщить ("делитель = "+кк) ;
сс2 = СуммаДелителей (ии/кк) ;
Если сс2 = 0 Тогда
сс = сс+ (ии/кк) ;
Сообщить ("делитель = "+(ии/кк)) ;
Иначе
сс = сс+ сс2;
КонецЕсли;
Прервать;
КонецЕсли;
КонецЦикла;
Возврат сс;
КонецФункции

Процедура КнопкаВыполнитьНажатие (Кнопка)
// Вставить содержимое обработчика.
//нужна полная прога на си для задачи. найти натуральное число от1 до 10000 с максимальной суммой делителеи.
ии = 1;
сМакс = 0;
Для ии = 1 По 10000 Цикл
Сообщить ("ии = "+ии) ;
сс = СуммаДелителей (ии) ;
Сообщить ("сумма = "+сс) ;
Если сс > сМакс Тогда
сМакс = сс;
КонецЕсли;
КонецЦикла;
Сообщить ("максимальная сумма = " + сМакс) ;
КонецПроцедуры

==========
а вот последние строчки вывода и ответ:
....
....
ии = 9 995
делитель = 5
делитель = 1 999
сумма = 2 004
ии = 9 996
делитель = 2
делитель = 2
делитель = 3
делитель = 7
делитель = 7
делитель = 17
сумма = 38
ии = 9 997
делитель = 13
делитель = 769
сумма = 782
ии = 9 998
делитель = 2
делитель = 4 999
сумма = 5 001
ии = 9 999
делитель = 3
делитель = 3
делитель = 11
делитель = 101
сумма = 118
ии = 10 000
делитель = 2
делитель = 2
делитель = 2
делитель = 2
делитель = 5
делитель = 5
делитель = 5
делитель = 5
сумма = 28
максимальная сумма = 5 001
Константин Толстиков
Константин Толстиков
84 336
Лучший ответ
int i,i2;
int x=0, max=0, maxn;
for (i=1;i<1000;i++)
{
for (i2=1;i2<i;>max) max=x;
maxn=i;
x=0;
}
cout << "число с максимальным колчисеством делителей " << maxn << " делителей " << max;
Нужна НАПИШИ Ничего сложного в этом нет!

Похожие вопросы