Вопрос по информатике:
Найдите все целые числа из промежутка от 300 до 600, у которых сумма делителей равна 50 . Помогите пожалуйста решить задачу .
- 19.03.2016 20:29
- Информатика
- remove_red_eye 12086
- thumb_up 40
Ответы и объяснения 1
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
- 20.03.2016 05:05
- thumb_up 34
Знаете ответ? Поделитесь им!
Есть сомнения?
Не нашли подходящего ответа на вопрос или ответ отсутствует? Воспользуйтесь поиском по сайту, чтобы найти все ответы на похожие вопросы в разделе Информатика.
Трудности с домашними заданиями? Не стесняйтесь попросить о помощи - смело задавайте вопросы!
Информатика — наука о методах и процессах сбора, хранения, обработки, передачи, анализа и оценки информации с применением компьютерных технологий, обеспечивающих возможность её использования для принятия решений.