(Для паскаля) Два натуральных числа называются дружественными, если каждое из них равно...

0 голосов
68 просмотров

(Для паскаля) Два натуральных числа называются дружественными, если каждое из них равно сумме всех
делителей другого (само другое число в качестве делителя не рассматривается). Найти все пары
натуральных дружественных чисел, меньших 50 000.


Информатика (204 баллов) | 68 просмотров
Дан 1 ответ
0 голосов
Правильный ответ
// PascalABC.NET 3.2, сборка 1379 от 21.01.2017
// Внимание! Если программа не работает, обновите версию!

function snd(n:integer):integer;
begin
  Result:=1;
  for var i:=2 to n div 2 do
    if n mod i=0 then Result+=i
end;

begin
  for var i:=1 to 50000 do
    for var j:=i+1 to 50000 do
      if (snd(i)=j) and (snd(j)=i) then Print((i,j))
end.

Результат
(220,284) (1184,1210) ... запускайте и ждите, если больше заняться нечем.

(150k баллов)