Advertisement
MonroCoury

sieve_of_Eratosthenes

Nov 22nd, 2017
88
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
Python 0.78 KB | None | 0 0
  1. def get_primes(limit):#sieve of Eratosthenes
  2.     primes = []#this will hold the primes
  3.     bools = [True for i in range(2, limit + 1)]
  4.     nums = range(2, limit + 1)
  5.     for i in range(2, (int(limit**0.5)) + 1):
  6.         if bools[i]:
  7.             j = i**2
  8.             while j <= limit:
  9.                 bools[j-2] = False
  10.                 j += i
  11.     for i in range(len(bools)):
  12.         if bools[i] and nums[i]**0.5 != int(nums[i]**0.5):
  13.             primes.append(nums[i])
  14.     return primes
  15.  
  16. def prime_fac(num, unique=False):#get unique prime factors
  17.     prime_divs = []
  18.     primes = get_primes(num)
  19.     for prime in primes:
  20.         while num % prime == 0:
  21.             prime_divs.append(prime)
  22.             num /= prime
  23.     if unique:
  24.         return set(prime_divs)
  25.     return prime_divs
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement