Форум » Обработка целых чисел » 25.( 75 задача Д.Ф. Муфаззалов, г. Уфа) » Ответить

25.( 75 задача Д.Ф. Муфаззалов, г. Уфа)

Кэйт: Задача: Выведите каждое почти совершенное число из диапазона [1000; 20000] в порядке возрастания по одному в строке. Число называется почти совершенным, если оно больше суммы своих собственных делителей (то есть всех положительных делителей, отличных от самого́ числа) на единицу. Подскажите пожалуйста, что не так с программой? ( мне кажется здесь диапазон неверный или же что-то с условием) [pre2] 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.[/pre2] Ответ(должен быть): 2 8 32 128 512 2048 8192

Ответов - 2

Поляков: Кэйт пишет: if k-i=1 then Наоборот:[pre2]if i-k=1 then[/pre2]Тогда получается верный ответ, такой, как в текущей версии файла answers.xls.

Кэйт: Число называется почти совершенным, если оно меньше суммы своих собственных делителей (то есть всех положительных делителей, отличных от самого́ числа) на единицу



полная версия страницы