mirror of
https://github.com/autistic-symposium/master-algorithms-py.git
synced 2025-05-02 06:46:18 -04:00
reorganize dir
Signed-off-by: Mia Steinkirch <mia.steinkirch@gmail.com>
This commit is contained in:
parent
1b6f705e7c
commit
a8e71c50db
276 changed files with 23954 additions and 0 deletions
47
ebook_src/builtin_structures/primes.py
Executable file
47
ebook_src/builtin_structures/primes.py
Executable file
|
@ -0,0 +1,47 @@
|
|||
#!/usr/bin/env python
|
||||
|
||||
__author__ = "bt3"
|
||||
|
||||
|
||||
'''
|
||||
find prime factors of a number.
|
||||
'''
|
||||
|
||||
import math
|
||||
import random
|
||||
|
||||
def find_prime_factors(n):
|
||||
'''
|
||||
>>> find_prime_factors(14)
|
||||
[2, 7]
|
||||
>>> find_prime_factors(19)
|
||||
[]
|
||||
'''
|
||||
|
||||
divisors = [d for d in range(2, n//2 + 1) if n % d == 0]
|
||||
primes = [d for d in divisors if is_prime(d)]
|
||||
|
||||
return primes
|
||||
|
||||
|
||||
def is_prime(n):
|
||||
for j in range(2, int(math.sqrt(n))):
|
||||
if (n % j) == 0:
|
||||
return False
|
||||
return True
|
||||
|
||||
|
||||
''' return a n-bit prime '''
|
||||
def generate_prime(number=3):
|
||||
while 1:
|
||||
p = random.randint(pow(2, number-2), pow(2, number-1)-1)
|
||||
p = 2 * p + 1
|
||||
if find_prime_factors(p):
|
||||
return p
|
||||
|
||||
|
||||
|
||||
if __name__ == '__main__':
|
||||
import doctest
|
||||
doctest.testmod()
|
||||
|
Loading…
Add table
Add a link
Reference in a new issue