Program druzestvennie;
const n=10000; {верхняя граница интервала}
var del:array [2..n] of integer; {сумма делителей}
 i, j, k, p: integer;
begin
 for k:=2 to n do {все числа делятся}
 del[k]:=1+k; {на 1 и самих себя}
{сумма делителей}
 for k:=2 to n div 2 do
 begin
 p:=k+k;
 while p<=n do
 begin
 del[p]:=del[p]+k;
 p:=p+k
 end
 end;
{дружественные числа}
for i:=2 to n-1 do
for j:=i+1 to n do
 if (del[i]=i+j) and (del[j]=i+j)
 then writeln(i,' ', j) {пара дружественных чисел}
end.
Выполнив эту программу, ЭВМ нашла пять пар дружественных чисел:
220 284
1184 1210
2620 2924
5020 5664
6232 6368

Оценка - 1.3 (24)

2012-06-22 • Просмотров [ 10909 ]