Поиск совершенный чисел — Pascal(Паскаль)

Совершенное число́ (др.-греч. ἀριθμὸς τέλειος) — натуральное число, равное сумме всех своих собственных делителей (то есть всех положительных делителей, отличных от самого́ числа). По мере того как натуральные числа возрастают, совершенные числа встречаются всё реже. Неизвестно, бесконечно ли множество всех совершенных чисел.
Совершенные числа образуют последовательность:


6,
28,
496,
8128,
33 550 336,
8 589 869 056,
137 438 691 328,
2 305 843 008 139 952 128,
2 658 455 991 569 831 744 654 692 615 953 842 176,
191 561 942 608 236 107 294 793 378 084 303 638 130 997 321 548 169 216, …

Примеры совершенный чисел

  • 1-е совершенное число — 6 имеет следующие собственные делители: 1, 2, 3; их сумма равна 6.
  • 2-е совершенное число — 28 имеет следующие собственные делители: 1, 2, 4, 7, 14; их сумма равна 28.
  • 3-е совершенное число — 496 имеет следующие собственные делители: 1, 2, 4, 8, 16, 31, 62, 124, 248; их сумма равна 496.
  • 4-е совершенное число — 8128 имеет следующие собственные делители: 1, 2, 4, 8, 16, 32, 64, 127, 254, 508, 1016, 2032, 4064; их сумма равна 8128.

Ниже показан пример программы поиска совершенный чисел до 1000 на Pascal

const LIMIT = 10000;
var n,i,j,s,lim,c,d : word;
begin 
  for i:=1 to LIMIT do begin
     s:=1; lim:=round(sqrt(i));
     for j:=2 to lim do begin
       c:=i mod j;
       d:=i div j;
       if c = 0 then begin
          inc(s,j);
          if (j<>d) then inc(s,d); {дважды не складывать корень числа}
       end;
     end;
     if s=i then writeln(i);
  end;
end.

Leave a Comment

94 − 93 =