Var A,d,S:integer; Begin Write('Искомые числа:'); For A:= 300 to 600 do Begin S:=A+1; d:=A div 2; While d>1 do Begin if A mod d = 0 then S:=S+d; d:=d-1 End; if S = 50 then Write(' ',A); End End.
Программа, разумеется, не выдаст ни одного числа, т.к. каждое число делится на себя и на единицу. То есть сумма делителей всегда будет больше 301.
Если не брать в расчёт само число и единицу, то программа будет выглядеть так:
Var A,d,S:integer; Begin Write('Искомые числа:'); For A:= 300 to 600 do Begin S:=0; d:=A div 2; While d>1 do Begin if A mod d = 0 then S:=S+d; d:=d-1 End; if S = 50 then Write(' ',A); End End.
Результат работы программы:
Искомые числа: 301 481 589
0,0(0 оценок)
Полный доступ
Позволит учиться лучше и быстрее. Неограниченный доступ к базе и ответам от экспертов и ai-bota
Оформи подписку