8279. Сумма делителей

 

Найдите сумму делителей числа n.

 

Вход. Одно натуральное число n (n < 10000).

 

Выход. Вывести сумму делителей числа n.

 

Пример входа

Пример выхода

6

12

 

 

РЕШЕНИЕ

делители

 

Анализ алгоритма

Переберем все значения i от 1 до  и проверим, делится ли n на i. Если i < , и i – делитель числа n, то n / i также будет делителем числа n.

Отдельно следует обработать случай, если n является полным квадратом: тогда  и n /  равны друг другу.

 

Реализация алгоритма

Читаем входное значение n.

 

scanf("%d",&n);

 

В переменной res находим сумму делителей.

 

res = 0;

 

Перебираем делители от 1 до  не включительно.

 

for(i = 1; i * i < n; i++)

  if (n % i == 0) res = res + i + n / i;

 

На данный момент i = . Если число n является полным квадратом, то следует учесть делитель i.

 

if (i * i == n) res += i;

printf("%d\n",res);