fork(1) download
  1. import time
  2.  
  3. def is_prime(number):
  4. i = 3
  5. while i**2 <= number:
  6. if number % i == 0:
  7. return False
  8. i += 2
  9. return True
  10.  
  11. def lucas_lehmer(p):
  12. s = 4
  13. M = 2**p - 1
  14.  
  15. for _ in range(p - 2):
  16. s = ((s * s) - 2) % M
  17. return s == 0
  18.  
  19. def mersenne_primes():
  20. p = 3
  21. while True:
  22. if is_prime(p) and lucas_lehmer(p):
  23. yield (p, 2**p - 1)
  24. p += 2
  25.  
  26. start = time.time()
  27. numbers = mersenne_primes()
  28.  
  29. for _ in range(15):
  30. p, mersenne = next(numbers)
  31. perfect = 2**(p-1) * mersenne
  32. print(perfect)
  33.  
  34. print('Executado em ' + str(time.time() - start) + 's')
Success #stdin #stdout 1.93s 27624KB
stdin
Standard input is empty
stdout
28
496
8128
33550336
8589869056
137438691328
2305843008139952128
2658455991569831744654692615953842176
191561942608236107294793378084303638130997321548169216
13164036458569648337239753460458722910223472318386943117783728128
14474011154664524427946373126085988481573677491474835889066354349131199152128
23562723457267347065789548996709904988477547858392600710143027597506337283178622239730365539602600561360255566462503270175052892578043215543382498428777152427010394496918664028644534128033831439790236838624033171435922356643219703101720713163527487298747400647801939587165936401087419375649057918549492160555646976
141053783706712069063207958086063189881486743514715667838838675999954867742652380114104193329037690251561950568709829327164087724366370087116731268159313652487450652439805877296207297446723295166658228846926807786652870188920867879451478364569313922060370695064736073572378695176473055266826253284886383715072974324463835300053138429460296575143368065570759537328128
54162526284365847412654465374391316140856490539031695784603920818387206994158534859198999921056719921919057390080263646159280013827605439746262788903057303445505827028395139475207769044924431494861729435113126280837904930462740681717960465867348720992572190569465545299629919823431031092624244463547789635441481391719816441605586788092147886677321398756661624714551726964302217554281784254817319611951659855553573937788923405146222324506715979193757372820860878214322052227584537552897476256179395176624426314480313446935085203657584798247536021172880403783048602873621259313789994900336673941503747224966984028240806042108690077670395259231894666273615212775603535764707952250173858305171028603021234896647851363949928904973292145107505979911456221519899345764984291328
1089258355057829337698225273522048981957108454302608067318906618508470155298616996291940961858901379546182685531220055762780759342407499066046704182083087124626926378164410931450968826355205573671671624202686633360807123109470452668371537599662797484934359039779954213666598820299501366380164619080260403235229556730554163992303009752651350320619930563673695280153023049498468696618144072021372831425963701460505606378119245841386552600145384072983309717141950085498085709671387054868320477972299055273914798446936214147860706887052107312380067072602317009422809314774791894700769891009818743169303028154303290071199392984292940283852217800166629229157110264080599294016452483028528153331119523441423159614934140265550242360007858215936798489500727196347516386044241721984706558329364277995903102292034620628080752342422906401283027034649671445569324281946859622177566643375489715678451311792675935981010355562887971948569016060035334607879359770371846507659970601616998311983878150420763306289490886429900481786499537645379839365212725494441511932772182768149943659849007457246983861558265144823191367758350341527780770221556945275566504831636564856831502556078058133043400055653540413313266034639355202834006126905491569560542489551023207382276137352665717018261519604817417112576526410535323991500058749996247580834453782528
Executado em 1.9178969860076904s