def factorization(n):
x = 2
primes = [x]
ans = []
flg = False
if n < 2: return []
while True:
for i in primes:#既に分かっている素数で割り切れるか判定
if n == i:
ans.append(i)
return ans
if n % i == 0:
flg = True
n = n // i
ans.append(i)
break
if flg == False:#次の素数を作る処理
while True:#次の素数が見つかるまで数を生成するループ
x += 1
for i in primes:
if x % i == 0:#生成した数が素数じゃ無いと分かった時点でforを抜ける
flg = True
break
if flg == False:#次の素数が見つかったら素数リストに加えてループを抜ける
primes.append(x)
break
flg = False
flg = False
print(factorization(13999))
ZGVmIGZhY3Rvcml6YXRpb24obik6Cgl4ID0gMgoJcHJpbWVzID0gW3hdCglhbnMgPSBbXQoJZmxnID0gRmFsc2UKCQoJaWYgbiA8IDI6IHJldHVybiBbXQoJd2hpbGUgVHJ1ZToKCQlmb3IgaSBpbiBwcmltZXM6I+aXouOBq+WIhuOBi+OBo+OBpuOBhOOCi+e0oOaVsOOBp+WJsuOCiuWIh+OCjOOCi+OBi+WIpOWumgoJCQlpZiBuID09IGk6CgkJCQlhbnMuYXBwZW5kKGkpCgkJCQlyZXR1cm4gYW5zCgkJCWlmIG4gJSBpID09IDA6CgkJCQlmbGcgPSBUcnVlCgkJCQluID0gbiAvLyBpCgkJCQlhbnMuYXBwZW5kKGkpCQkJCQoJCQkJYnJlYWsKCQkJCQoJCWlmIGZsZyA9PSBGYWxzZToj5qyh44Gu57Sg5pWw44KS5L2c44KL5Yem55CGCgkJCXdoaWxlIFRydWU6I+asoeOBrue0oOaVsOOBjOimi+OBpOOBi+OCi+OBvuOBp+aVsOOCkueUn+aIkOOBmeOCi+ODq+ODvOODlwoJCQkJeCArPSAxCQoJCQkJZm9yIGkgaW4gcHJpbWVzOgoJCQkJCWlmIHggJSBpID09IDA6I+eUn+aIkOOBl+OBn+aVsOOBjOe0oOaVsOOBmOOCg+eEoeOBhOOBqOWIhuOBi+OBo+OBn+aZgueCueOBp2ZvcuOCkuaKnOOBkeOCiwoJCQkJCQlmbGcgPSBUcnVlCgkJCQkJCWJyZWFrCgkJCQlpZiBmbGcgPT0gRmFsc2U6I+asoeOBrue0oOaVsOOBjOimi+OBpOOBi+OBo+OBn+OCiee0oOaVsOODquOCueODiOOBq+WKoOOBiOOBpuODq+ODvOODl+OCkuaKnOOBkeOCiwoJCQkJCXByaW1lcy5hcHBlbmQoeCkKCQkJCQlicmVhawoJCQkJZmxnID0gRmFsc2UKCQlmbGcgPSBGYWxzZQoJCQkJCnByaW50KGZhY3Rvcml6YXRpb24oMTM5OTkpKQoJ