Guest User

Untitled

a guest
Feb 15th, 2019
81
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
text 0.52 KB | None | 0 0
  1. from random import randrange
  2.  
  3. def probably_prime(n, k):
  4. """Return True if n passes k rounds of the Miller-Rabin primality
  5. test (and is probably prime). Return False if n is proved to be
  6. composite.
  7.  
  8. """
  9. if n < 2: return False
  10.  
  11. r, m = 0, n - 1
  12. while m % 2 == 0:
  13. r += 1
  14. m //= 2
  15. for _ in range(k):
  16. a = randrange(2, n - 1)
  17. x = pow(a, m, n)
  18. if x == 1 or x == n - 1:
  19. continue
  20. for _ in range(r - 1):
  21. x = pow(x, 2, n)
  22. if x == n - 1:
  23. break
  24. else:
  25. return False
  26. return True
Add Comment
Please, Sign In to add comment