Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- import random
- import sys
- def miller_rabin(n, k):
- if n == 2:
- return True
- if n % 2 == 0:
- return False
- r, s = 0, n - 1
- while s % 2 == 0:
- r += 1
- s //= 2
- for _ in range(k):
- a = random.randrange(2, n - 1)
- x = pow(a, s, n)
- if x == 1 or x == n - 1:
- continue
- for _ in range(r - 1):
- x = pow(x, 2, n)
- if x == n - 1:
- break
- else:
- return False
- return True
- if __name__ == '__main__':
- t = int(sys.argv[1])
- if(miller_rabin(t,t.bit_length())):
- print('Number {} is prime'.format(t))
- else:
- print('Number {} is composite'.format(t))
Advertisement
Add Comment
Please, Sign In to add comment