fork download
  1. def factorization(n):
  2. x = 2
  3. primes = [x]
  4. ans = []
  5. flg = False
  6.  
  7. if n < 2: return []
  8. while True:
  9. for i in primes:#既に分かっている素数で割り切れるか判定
  10. if n == i:
  11. ans.append(i)
  12. return ans
  13. if n % i == 0:
  14. flg = True
  15. n = n // i
  16. ans.append(i)
  17. break
  18.  
  19. if flg == False:#次の素数を作る処理
  20. while True:#次の素数が見つかるまで数を生成するループ
  21. x += 1
  22. for i in primes:
  23. if x % i == 0:#生成した数が素数じゃ無いと分かった時点でforを抜ける
  24. flg = True
  25. break
  26. if flg == False:#次の素数が見つかったら素数リストに加えてループを抜ける
  27. primes.append(x)
  28. break
  29. flg = False
  30. flg = False
  31.  
  32. print(factorization(13999))
  33.  
Success #stdin #stdout 0.25s 27704KB
stdin
Standard input is empty
stdout
[13999]