|
sample05.PAS |
|
{* Печать всех совершенных чисел до 10000 *}Unit SAMPLE05; InterfaceImplementationBegin writeln( 'Печать всех совершенных чисел до 10000'); End. Program pas;
Uses sample05.pas; {* Эту строку можно удалить *}
Const {* Постоянные значения *}
LIMIT = 10000;
Var {* В работе нам потребуются переменные: *}
n : word;
i : word;
j : word;
s : word;
lim : word;
c : word;
d : word;
Begin
For i := 1 To LIMIT Do {* Увеличиваем i от 1 до LIMIT с шагом 1 *}
Begin
s := 1;
lim := round(sqrt(i));
For j := 2 To lim Do {* Увеличиваем j от 2 до lim с шагом 1 *}
Begin
c := i Mod j;
d := i Div j;
If c = 0 Then
Begin
inc(s, j); {* s, j++ *}
If (jd) Then
inc(s, d); {дважды не складывать корень числа}
End;
End;
If s = i Then
writeln(i);
End;
End.
|