Автор | Сообщение |
|
Отправлено: 20.01.21 16:16. Заголовок: 25.( 75 задача Д.Ф. Муфаззалов, г. Уфа)
Задача: Выведите каждое почти совершенное число из диапазона [1000; 20000] в порядке возрастания по одному в строке. Число называется почти совершенным, если оно больше суммы своих собственных делителей (то есть всех положительных делителей, отличных от самого́ числа) на единицу. Подскажите пожалуйста, что не так с программой? ( мне кажется здесь диапазон неверный или же что-то с условием) var c,i,y,k: longint; begin for i:=1000 to 20000 do begin k:=0; c:=0; for y:= 1 to i div 2 do begin if i mod y =0 then begin c:=c+1; k:=k+y; end; end; if k-i=1 then writeln (i); end; end. Ответ(должен быть): 2 8 32 128 512 2048 8192
|
|
|
Ответов - 2
[только новые]
|
|
|
| Администратор
|
Сообщение: 2333
|
|
Отправлено: 20.01.21 20:55. Заголовок: Кэйт пишет: if k-i=1..
Кэйт пишет: Наоборот: if i-k=1 then Тогда получается верный ответ, такой, как в текущей версии файла answers.xls.
|
|
|
|
Отправлено: 20.01.21 22:33. Заголовок: Число называется поч..
Число называется почти совершенным, если оно меньше суммы своих собственных делителей (то есть всех положительных делителей, отличных от самого́ числа) на единицу
|
|
|
|