Advertisement
Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- import random, sys
- def miller_rabin_pass(a, s, d, n):
- a_to_power = pow(a, d, n)
- if a_to_power == 1:
- return True
- for i in xrange(s-1):
- if a_to_power == n - 1:
- return True
- a_to_power = (a_to_power * a_to_power) % n
- return a_to_power == n - 1
- def miller_rabin(n):
- d = n - 1
- s = 0
- while d % 2 == 0:
- d >>= 1
- s += 1
- for repeat in xrange(20):
- a = 0
- while a == 0:
- a = random.randrange(n)
- if not miller_rabin_pass(a, s, d, n):
- return False
- return True
- test = input();
- for i in range(test):
- n = input()
- while(miller_rabin(n) == False):
- n -= 1
- print n
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement