Автор: A_V
Дата сообщения: 12.11.2004 19:23
когдато давно писал в школе на кубасике, думаю на паскаль перевести не проблема:
--cut--
DEFDBL A-Z
Start = 0
CLS
OPEN "sov.chi" FOR OUTPUT AS #1
PRINT #1, "Найденные совершенные числа:"
Start = 33550000 'незадолго перед последним найденным -)
IF Start > 6 THEN PRINT #1, 6
IF Start > 28 THEN PRINT #1, 28
IF Start > 496 THEN PRINT #1, 496
IF Start > 8128 THEN PRINT #1, 8128
COLOR 12, 1: PRINT " Программа поиска совершенных чисел "
LOCATE 25: PRINT " ESC - выход ";
COLOR 7, 0
t = 2
FOR chisl = Start TO 999999999#
sum = 1
D = SQR(chisl)
IF chisl / 2 = chisl \ 2 OR INT(D) < D THEN 'вобщето нечетных сов. чисел до 10^36 нет
FOR div = 2 TO INT(D)
IF chisl / div = chisl \ div THEN
sum = div + sum
div2 = chisl / div
IF div = div2 THEN div2 = 0
sum = sum + div2
END IF
NEXT
END IF
IF chisl = sum THEN COLOR 15: t = t + 1: LOCATE t, 1: PRINT sum; "- совершенное": PLAY "ac6": PRINT #1, sum
COLOR 7: LOCATE t + 1, 1: PRINT chisl
IF INKEY$ = CHR$(27) THEN CLOSE : END
NEXT
--cut--
зы: вот все совершенные числа, которые у меня получилось найти вышеописанным способом:
6
28
496
8128
33550336