Два числа называются дружественными если сумма собственных делителей (то есть всех положительных делителей, отличных от самого́ числа) любого их них равна другому числу. Например, числа 220 и 284 дружественные. Выведите в порядке возрастания числа в диапазоне [2; 30000], имеющие дружественное число, большее чем само это число, и через пробел это дружественное число. Каждое следующее число из указанного диапазона выводите на новой строке
В ПАСКАЛЕ ABC
Объяснение:
program friendfullNumbers;
uses crt;
var a: longint;
b, i, s, s1: integer;
{a - первое число;
b - делители числа s;
i - делители числа a;
s - сумма делителей первого числа;
s1 - сумма делителей s}
begin
clrscr;
for a:= 2 to 30000 do {цикл для проверки первых чисел}
begin
s:=0;
for i:= 1 to a-1 do {находим все делители числа а,
исключая само число}
if a mod i = 0 then s:= s+i; {находим сумму делителей числа а}
s1:=0;
for b:= 1 to s-1 do {цикл для проверки вторых чисел, которые являются суммой делителей первого числа}
if s mod b = 0 then s1:= s1 +b; {находим все делители числа s (сумма делителей числа а)}
if (s1=a) and (s< >a) then writeln (a, ' ', s); {сумма делителей суммы делителей числа а должна быть равна числу A, а сумма делителей числа A не должна быть равна этому числу}
end;
end.