Advertisement
Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- # factorization:- Time is O(log n).
- class PrimeFactor:
- def __init__(self, n):
- self.primes = []
- self.n = n
- self.factorization()
- #Save all prime numbers between 1 to n.
- def seive(self):
- n = self.n
- look_up = set()
- for i in range(2, n+1):
- if i not in look_up:
- self.primes.append(i)
- for j in range(i*i, n+1, i):
- look_up.add(j)
- return self.primes
- #Time is O(log n)
- def factorization(self):
- primes = self.seive()#assaign All prime numbers in primes.
- num = self.n
- s_root = int(num ** 0.5)#Square root value of given number.
- res = []
- for i in primes:
- if i > s_root:
- break
- while s_root <= num:
- if num % i == 0:
- res.append(i)
- num //= i #Floor division assignment.
- else: #Break for next prime number.
- break
- if num != 1:
- res.append(num)
- print("Output:", end=' ')
- print(' '.join(map(str, res)))
- if __name__ == "__main__":
- while True:#Loop for test case.
- num = int(input())
- obj = PrimeFactor(num)
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement