Skip to content

Instantly share code, notes, and snippets.

@acwoss acwoss/main.py
Created Sep 26, 2018

Embed
What would you like to do?
QuickDarkbluePublishers created by acwoss - https://repl.it/@acwoss/QuickDarkbluePublishers
import time
def is_prime(number):
i = 3
while i**2 <= number:
if number % i == 0:
return False
i += 2
return True
def lucas_lehmer(p):
s = 4
M = 2**p - 1
for _ in range(p - 2):
s = ((s * s) - 2) % M
return s == 0
def mersenne_primes():
p = 3
while True:
if is_prime(p) and lucas_lehmer(p):
yield (p, 2**p - 1)
p += 2
start = time.time()
numbers = mersenne_primes()
for _ in range(10):
p, mersenne = next(numbers)
perfect = 2**(p-1) * mersenne
print(perfect)
print(f'Executado em {time.time()-start}s')
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
You can’t perform that action at this time.