Школа программиста

Забыли пароль?
[задачи] [курсы] [олимпиады] [регистрация]
Логин:   Пароль:    
Скрыть меню
О школе
Правила
Олимпиады
Фотоальбом
Гостевая
Форум
Чат
Архив олимпиад
Архив задач
Состояние системы
Рейтинг
Курсы
Новичкам
Работа в системе
Алгоритмы
Курсы ККДП
Дистрибутивы
Ссылки

HotLog


 

Гадание

(Время: 1 сек. Память: 16 Мб Сложность: 13%)

Для решения этой задачи можно организовать перебор всех возможных чисел от 1 до n (делитель числа n не может быть больше самого n) и проверить каждое из них на делимость. Каждый раз при нахождении очередного делителя его следует прибавлять к некоторой целочисленной переменной s, которую предварительно следует обнулить. Является ли делитем число k для n проверить можно с помощью вычисления остатка от деления: число k - делитель числа n тогда и только тогда, когда n mod k = 0 (остаток от деления n на k равен нулю, в языке Си вместо n mod k пишут n % k).

Решение этой, довольно простой задачи, в алгоритмической записи может выглядеть так:

  int n,k,s=0;

  for k=1..n{
    if(n mod k = 0) s = s+k;
  }
 
  write(s);

[Обсуждение] [Все попытки] [Задача]


Красноярский краевой Дворец пионеров, (c)2006 - 2017, ICQ: 151483