Два числа называются дружественными если сумма собственных делителей (то есть всех положительных делителей, отличных от самого́ числа) любого их них равна другому числу. Например, числа 220 и 284 дружественные. Выведите в порядке возрастания числа в диапазоне [2; 30000], имеющие дружественное число, большее чем само это число, и через пробел это дружественное число. Каждое следующее число из указанного диапазона выводите на новой строке

В ПАСКАЛЕ ABC

Kirakirakira55 Kirakirakira55    2   18.06.2021 09:09    3

Ответы
ekaterinkavlas1 ekaterinkavlas1  18.07.2021 10:12

Объяснение:

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.

ПОКАЗАТЬ ОТВЕТЫ
Другие вопросы по теме Информатика