История изменений
Исправление Aswed, (текущая версия) :
для таких целей хаскель лучше подходит
algiz:~$ cat tmp.hs
perfect = [2^(p-1) * (2^p - 1) | p <- 2:[n | n <- [3,5..], null [x | x <- [2..(n-1)], mod n x == 0]]]
main = print $ take 30 perfect
algiz:~$ time ./tmp
[6,28,496,8128,2096128,33550336,8589869056,137438691328,35184367894528,144115187807420416,2305843008139952128,9444732965670570950656,2417851639228158837784576,38685626227663735544086528,9903520314282971830448816128,40564819207303336344294875201536,166153499473114483824745506383331328,2658455991569831744654692615953842176,10889035741470030830754200461521744560128,2787593149816327892690784192460327776944128,44601490397061246283066714178813853366747136,182687704666362864775460301858080473799697891328,46768052394588893382517909811217778170473142550528,191561942608236107294793378084303638130997321548169216,12554203470773361527671578846336104669690446551334525075456,3213876088517980551083924184681057554444177758164088967397376,51422017416287688817342786954912132678309582883443383916822528,13164036458569648337239753460458722910223472318386943117783728128,210624583337114373395836055367340540119236532374371439352601378816,53919893334301279589334030174039256154977430310253516431710891278336]
real 0m0.011s
user 0m0.004s
sys 0m0.004s
Исходная версия Aswed, :
для таких целей хаскель лучше подходит
algiz:~$ cat tmp.hs
perfect = [2^(p-1) * (2^p - 1) | p <- 2:[n | n <- [3,5..], null [x | x <- [2..(n-1)], mod n x == 0]]]
main = print $ take 30 perfect
algiz:~$ ghc tmp && ./tmp
[1 of 1] Compiling Main ( tmp.hs, tmp.o )
Linking tmp ...
[6,28,496,8128,2096128,33550336,8589869056,137438691328,35184367894528,144115187807420416,2305843008139952128,9444732965670570950656,2417851639228158837784576,38685626227663735544086528,9903520314282971830448816128,40564819207303336344294875201536,166153499473114483824745506383331328,2658455991569831744654692615953842176,10889035741470030830754200461521744560128,2787593149816327892690784192460327776944128,44601490397061246283066714178813853366747136,182687704666362864775460301858080473799697891328,46768052394588893382517909811217778170473142550528,191561942608236107294793378084303638130997321548169216,12554203470773361527671578846336104669690446551334525075456,3213876088517980551083924184681057554444177758164088967397376,51422017416287688817342786954912132678309582883443383916822528,13164036458569648337239753460458722910223472318386943117783728128,210624583337114373395836055367340540119236532374371439352601378816,53919893334301279589334030174039256154977430310253516431710891278336]