コード例 #1
0
def random_prime(bits):
    min = 6074001000 << (bits-33)
    max = (1<<bits) - 1
    while True:
        p = randint(min, max)
        if(is_prime(p)):
            return p
コード例 #2
0
def smaller_closest_prime(x):
    if x < 3:
        return -100  # no smaller prime
    i = 1
    while not mr.is_prime(x - i):
        i += 1
    return (x - i)
コード例 #3
0
ファイル: test_prime.py プロジェクト: swenson/primality
 def test_first_primes(self):
   primes = [2]
   for q in xrange(3, 10000, 2):
     s = int(ceil(sqrt(q)))
     prime = True
     for p in primes:
       if p > s:
         break
       if q % p == 0:
         prime = False
         break
     if prime:
       primes.append(q)
   for p in primes:
     self.assertTrue(miller_rabin.is_prime(p))
コード例 #4
0
def generate_test_sequence(
        upper_bound):  # the test sequence is 2p where p are prime numbers
    test_sequence = [
    ]  # the corresponding bit sequence (generated with skip) appeared to be random
    num = 1
    index = 0
    while index < upper_bound:
        print('-Generating test sequence:{}%'.format(
            round(index * 100 / upper_bound)),
              end='\r')
        num += 1
        if mr.is_prime(num):
            test_sequence.append(num * 2)
            index += 1
    print()
    print('test sequence generated')
    print()
    return test_sequence
コード例 #5
0
# Projecteuler problem 058

# Answer: 26241

from miller_rabin import is_prime

# Ulam spiral
n = 1
diag_total = 1
diag_primes = 0
for i in range(2, 100000, 2):
    for j in range(0, 4):
        n += i
        diag_total += 1
        if is_prime(n):
            diag_primes += 1
#    print (i+1), diag_total, diag_primes, float(diag_primes)/diag_total, n
    if diag_primes*10 < diag_total:
        print "ans:", i+1
        break
コード例 #6
0
ファイル: test.py プロジェクト: ephiepark/secure_msg
from miller_rabin import is_prime

for i in range(3, 1000):
    if is_prime(i):
        print "%d \n" % i

#i = 2 ** 2048
#while True:
#    if is_prime(i):
#        print  "found prime ! %d " % i
#        break
#    else:
#        i = i - 1
#        print "%d \n" % i
コード例 #7
0
import miller_rabin as pt
import math

n = 600851475143
f = n

# find largest odd factor
while f % 2 == 0:
    f /= 2

# divide out smallest odd prime factor until f is 1
p = 3
while not f == 1:
    while (not pt.is_prime(p) or f % p != 0):
        p += 2
    while f % p == 0:
        f /= p

print(p)
コード例 #8
0
 def test_big_composite_integer(self):
     self.assertFalse(is_prime(exp_sqr(12456, 10)))
コード例 #9
0
 def test_composite_integer(self):
     self.assertFalse(is_prime(91))
コード例 #10
0
 def test_even_integer(self):
     self.assertFalse(is_prime(8))
コード例 #11
0
 def test_small_integer(self):
     self.assertTrue(is_prime(5))
コード例 #12
0
 def test_one(self):
     self.assertFalse(is_prime(1))
コード例 #13
0
ファイル: problem5.py プロジェクト: erziebart/project_euler
    for i in range(len(primes)):
        p = primes[i]
        count = 0
        while n % p == 0:
            n /= p
            count += 1
        res.append(count)
    return res


n = 20

# find all primes <= n
primes = [2]
for p in range(3, n + 1, 2):
    if pt.is_prime(p):
        primes.append(p)

# initialize the multiplicities
multiplicities = [0 for p in primes]

# find multiplicities of all the primes
for i in range(1, n + 1):
    mults = get_multiplicities(primes, i)
    for j in range(len(mults)):
        if mults[j] > multiplicities[j]:
            multiplicities[j] = mults[j]

print(primes)
print(multiplicities)
コード例 #14
0
def larger_closest_prime(x):
    i = 1
    while not mr.is_prime(x + i):
        i += 1
    return (x + i)
コード例 #15
0
ファイル: test_prime.py プロジェクト: swenson/primality
 def test_known_composites(self):
   for n in [4, 6, 8, 9, 10, 12, 14, 15, 16, 18, 20, 21, 22, 100]:
     self.assertFalse(miller_rabin.is_prime(n))
コード例 #16
0
ファイル: test_prime.py プロジェクト: swenson/primality
 def test_known_primes(self):
   for p in [2, 3, 5, 7, 11, 13, 17, 19, 23, 29, 31, 82104551, 452784427,
             46897875786625702576864112692857487051,
             16924980224899166400812497777709246533,
             2345025074052479518600795136681355950888074907685014583790880397468973914695237139661677440025217429981429253627078303444430132992263268824958968314521]:
     self.assertTrue(miller_rabin.is_prime(p))