Проверить являются ли два введенных числа дружественными. Дружественные числа – пара чисел, каждое из которых равно сумме собственных делителей другого (Делителем числа называется всякий его делитель, отличный от самого числа)
Дружественные числа были открыты последователями Пифагора, которые, однако, знали только одну пару дружественных чисел — 220 и 284.
Список делителей для 220: 1, 2, 4, 5, 10, 11, 20, 22, 44, 55 и 110, сумма делителей равна 284.
Список делителей для 284: 1, 2, 4, 71 и 142, сумма делителей равна 220.
Требуется написать программу, которая проверяет числа и выводит сообщение «числа дружественные» или «числа не дружественные»
Программа должна:
Прочитать из исходного файла task2. in два целых числа n,m
Определить и вывести в файл task2.оut текст «числа дружественные» или «числа не дружественные»

Ответы

Ответ дал: petyaGavrikov
0

var n,m: integer;

f1,f2: text;

function sd(a:integer):integer;

var s,i:integer;

begin

s:=1;

for i:=2 to a div 2 do

if a mod i=0 then s:=s+i;

sd:=s;

end;

begin

assign(f1,'task2.in');

reset(f1);

assign(f2,'task2.out');

rewrite(f2);

readln(f1,n,m);

if (sd(n)=m)and(sd(m)=n)

then writeln(f2,'числа дружественные')

else writeln(f2,'числа не дружественные');

close(f1);

close(f2);

end.

Пример:

Файл task.in

220 284

Файл task.out

числа дружественные

Ответ дал: andrew211
0
Спасибо! А можно еще решить вот это? https://znanija.com/task/29876635
Вас заинтересует