Advertisement
halaluddin

Prime Factorization

Dec 2nd, 2019
332
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
Python 1.30 KB | None | 0 0
  1. # factorization:- Time is O(log n).
  2.  
  3. class PrimeFactor:
  4.     def __init__(self, n):
  5.         self.primes = []
  6.         self.n = n
  7.         self.factorization()
  8.  
  9.     #Save all prime numbers between 1 to n.
  10.     def seive(self):
  11.         n = self.n
  12.         look_up = set()
  13.        
  14.         for i in range(2, n+1):
  15.             if i not in look_up:
  16.                 self.primes.append(i)
  17.                 for j in range(i*i, n+1, i):
  18.                     look_up.add(j)
  19.  
  20.         return self.primes
  21.  
  22.  
  23.     #Time is O(log n)
  24.     def factorization(self):
  25.         primes = self.seive()#assaign All prime numbers in primes.
  26.         num = self.n
  27.         s_root = int(num ** 0.5)#Square root value of given number.
  28.         res = []
  29.        
  30.         for i in primes:
  31.             if i > s_root:
  32.                 break
  33.             while s_root <= num:
  34.                 if num % i == 0:
  35.                     res.append(i)
  36.                     num //= i #Floor division assignment.
  37.                 else:   #Break for next prime number.
  38.                     break
  39.         if num != 1:
  40.             res.append(num)
  41.         print("Output:", end=' ')
  42.         print(' '.join(map(str, res)))
  43.  
  44.    
  45. if __name__ == "__main__":
  46.     while True:#Loop for test case.
  47.         num = int(input())
  48.         obj = PrimeFactor(num)
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement