Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- from typing import List, Any
- class primes:
- def __init__(self):
- self.primescache = [2]
- self.lastnumber = 2
- def generate(self, n: int):
- if n < self.lastnumber: return
- for i in range(self.lastnumber, n):
- if i % 2 == 0: continue
- if self.check(i) == 1: self.primescache.append(i)
- self.lastnumber = n
- def check(self, n: int):
- if n <= self.lastnumber: return (n in self.primescache)
- c: int = 1
- if n < 2: return bool(0)
- if n == 2: return bool(1)
- if ((n % 2) == 0) and (n > 2): return bool(0)
- for i in range(3, int(n / 2)):
- if n % i == 0:
- c = 0
- break
- else:
- continue
- return bool(c)
- def getlist(self, n):
- list = []
- self.generate(n)
- for i in self.primescache:
- if i <= n: list.append(i)
- return list
- def getprimefactors(n):
- nc = n
- p1 = primes()
- pf = []
- while nc > 1:
- for i in p1.getlist(nc):
- if nc % i == 0:
- nc /= i
- pf.append(i)
- break
- return pf
- def main():
- p1 = primes()
- while 1:
- i = int(input())
- print(getprimefactors(i))
- if __name__ == "__main__": main()
Add Comment
Please, Sign In to add comment