Posts: 50 Threads: 17 Joined: Apr 2018 Reputation: 0 Likes received: 1 Hi all, Great thanks for this site it helps. Anyway I have found a direct relationship with perfect numbers to Mersenne Numbers. For Instance 6 is a perfect Number and it is divisible by two which equals 3. My current formula is looking at exponents of the number 4. If you want to find Mersenne numbers than put an exponent on 4 double the number and substract 1. However the exponents are staggered at times. but if you do it enough you will land a Mersenne number. 28 is a perfect number divide it by 7 and you get 4. Lets look at 4^3=64 next 2*641=127 Lets look at 4^6=4096 next 2*40961=8191 try 4^15 I need some code that will process large perfect numbers. Thanks for reading :) Posts: 8,158 Threads: 299 Joined: Sep 2016 Reputation: 326 Likes received: 1099 Posts: 50 Threads: 17 Joined: Apr 2018 Reputation: 0 Likes received: 1 Apr242018, 04:42 PM (This post was last modified: Apr252018, 02:53 AM by Pleiades. Edited 1 time in total.) (Apr242018, 10:56 AM)Larz60+ Wrote: see: https://www.w3resource.com/pythonexerci...ise11.php Thanks Larz60, Now I'm trying to write code for a simple formula 4**y*21= Input y several times with different numbers automated. I believe I need some kinda of exponent loop so I can integrate it with the Perfect Numbers module, but I'm clueless. Plz help. For you perfect Number people here is the ultimate code: from itertools import count
def postponed_sieve(): # postponed sieve, by Will Ness
yield 2; yield 3; yield 5; yield 7; # original code David Eppstein,
sieve = {} # Alex Martelli, ActiveState Recipe 2002
ps = postponed_sieve() # a separate base Primes Supply:
p = next(ps) and next(ps) # (3) a Prime to add to dict
q = p*p # (9) its sQuare
for c in count(9,2): # the Candidate
if c in sieve: # c's a multiple of some base prime
s = sieve.pop(c) # i.e. a composite ; or
elif c < q:
yield c # a prime
continue
else: # (c==q): # or the next base prime's square:
s=count(q+2*p,2*p) # (9+6, by 6 : 15,21,27,33,...)
p=next(ps) # (5)
q=p*p # (25)
for m in s: # the next multiple
if m not in sieve: # no duplicates
break
sieve[m] = s # original test entry: ideone.com/WFv4f
def prime_sieve(): # postponed sieve, by Will Ness
yield 2; yield 3; yield 5; yield 7; # original code David Eppstein,
sieve = {} # Alex Martelli, ActiveState Recipe 2002
ps = postponed_sieve() # a separate base Primes Supply:
p = next(ps) and next(ps) # (3) a Prime to add to dict
q = p*p # (9) its sQuare
for c in count(9,2): # the Candidate
if c in sieve: # c’s a multiple of some base prime
s = sieve.pop(c) # i.e. a composite ; or
elif c < q:
yield c # a prime
continue
else: # (c==q): # or the next base prime’s square:
s=count(q+2*p,2*p) # (9+6, by 6 : 15,21,27,33,...)
p=next(ps) # (5)
q=p*p # (25)
for m in s: # the next multiple
if m not in sieve: # no duplicates
break
sieve[m] = s # original test entry: ideone.com/WFv4f
def mod_mersenne(n, prime, mersenne_prime):
while n > mersenne_prime:
n = (n & mersenne_prime) + (n >> prime)
if n == mersenne_prime:
return 0
return n
def is_mersenne_prime(prime, mersenne_prime):
s = 4
for i in range(prime  2):
s = mod_mersenne((s*s  2), prime, mersenne_prime)
return s == 0
def calculate_perfects():
yield(6)
primes = prime_sieve()
next(primes) #2 is barely even a prime
for prime in primes:
if is_mersenne_prime(prime, 2**prime1):
yield(2**(2*prime1)2**(prime1))
if __name__ == '__main__':
for perfect in calculate_perfects():
print(perfect) Posts: 50 Threads: 17 Joined: Apr 2018 Reputation: 0 Likes received: 1 (Apr242018, 07:46 AM)Pleiades Wrote: Hi all, Great thanks for this site it helps. Anyway I have found a direct relationship with perfect numbers to Mersenne Numbers. For Instance 6 is a perfect Number and it is divisible by two which equals 3. My current formula is looking at exponents of the number 4. If you want to find Mersenne numbers than put an exponent on 4 double the number and substract 1. However the exponents are staggered at times. but if you do it enough you will land a Mersenne number. 28 is a perfect number divide it by 7 and you get 4. Lets look at 4^3=64 next 2*641=127 Lets look at 4^6=4096 next 2*40961=8191 try 4^15 I need some code that will process large perfect numbers. Thanks for reading :) Ok I'm getting somewhere I'm finding Mersennes in this code. However can you guys help me plz with a small script which finds the P associated with the mersenne. 2^p1 thank you. # Python Program to display the powers of 2 using anonymous function
# Change this value for a different result
terms = 60
# Uncomment to take number of terms from user
#terms = int(input("How many terms? "))
# use anonymous function
result = list(map(lambda x: 4 ** x*21, range(terms)))
# display the result
print("The total terms is:",terms)
for i in range(terms):
print("4 raised to power",i,"is",result[i]) Posts: 50 Threads: 17 Joined: Apr 2018 Reputation: 0 Likes received: 1 Apr262018, 04:37 PM (This post was last modified: Apr262018, 04:37 PM by Pleiades. Edited 2 times in total.) Hi, in post 4 my question remains unanswered. Is there a way to add a, "for loop division option", here that will find all the P's (as in primes associated with the Mersenne Numbers) in 2^P1 numbers? Thanks for your help. Posts: 50 Threads: 17 Joined: Apr 2018 Reputation: 0 Likes received: 1 May162018, 04:56 PM (This post was last modified: May162018, 04:56 PM by Pleiades. Edited 1 time in total.) (Apr262018, 04:37 PM)Pleiades Wrote: Hi, in post 4 my question remains unanswered. Is there a way to add a, "for loop division option", here that will find all the P's (as in primes associated with the Mersenne Numbers) in 2^P1 numbers? Thanks for your help. I edited the code and I'm finding the P's out of 2p1 for Mersenne Primes. Can anyone please point me to a fast computer online which runs python for this code; or is anyone up to the challenge to speed up the code. I'm thinking that my laptop is a little slow. Here is some output. Thanks all for your support and help:) Quote:3 5 7 13 17 19 31 61 89 107 127 521 607 1279 2203 2281 3217 4253 4423 9689 9941 11213
from itertools import count
def postponed_sieve(): # postponed sieve, by Will Ness
yield 2; yield 3; yield 5; yield 7; # original code David Eppstein,
sieve = {} # Alex Martelli, ActiveState Recipe 2002
ps = postponed_sieve() # a separate base Primes Supply:
p = next(ps) and next(ps) # (3) a Prime to add to dict
q = p*p # (9) its sQuare
for c in count(9,2): # the Candidate
if c in sieve: # c's a multiple of some base prime
s = sieve.pop(c) # i.e. a composite ; or
elif c < q:
yield c # a prime
continue
else: # (c==q): # or the next base prime's square:
s=count(q+2*p,2*p) # (9+6, by 6 : 15,21,27,33,...)
p=next(ps) # (5)
q=p*p # (25)
for m in s: # the next multiple
if m not in sieve: # no duplicates
break
sieve[m] = s # original test entry: ideone.com/WFv4f
def prime_sieve(): # postponed sieve, by Will Ness
yield 2; yield 3; yield 5; yield 7; # original code David Eppstein,
sieve = {} # Alex Martelli, ActiveState Recipe 2002
ps = postponed_sieve() # a separate base Primes Supply:
p = next(ps) and next(ps) # (3) a Prime to add to dict
q = p*p # (9) its sQuare
for c in count(9,2): # the Candidate
if c in sieve: # c’s a multiple of some base prime
s = sieve.pop(c) # i.e. a composite ; or
elif c < q:
yield c # a prime
continue
else: # (c==q): # or the next base prime’s square:
s=count(q+2*p,2*p) # (9+6, by 6 : 15,21,27,33,...)
p=next(ps) # (5)
q=p*p # (25)
for m in s: # the next multiple
if m not in sieve: # no duplicates
break
sieve[m] = s # original test entry: ideone.com/WFv4f
def mod_mersenne(n, prime, mersenne_prime):
while n > mersenne_prime:
n = (n & mersenne_prime) + (n >> prime)
if n == mersenne_prime:
return 0
return n
def is_mersenne_prime(prime, mersenne_prime):
s = 4
for i in range(prime  2):
s = mod_mersenne((s*s  2), prime, mersenne_prime)
return s == 0
def calculate_perfects():
yield(2)
primes = prime_sieve()
next(primes) #2 is barely even a prime
for prime in primes:
if is_mersenne_prime(prime, 2**prime1):
yield(prime)
if __name__ == '__main__':
for perfect in calculate_perfects():
print(perfect)
#edited by Tom E. O'Neil to find Mprimes
