Kryptografia/zajecia3/4-faktoryzacja.py

30 lines
415 B
Python

import random, math
n = random.getrandbits(50)
print(n)
k = 2
pom = math.sqrt(n)
factors = [1]
i = 1
d = -1
while n > 1 and k <= pom:
while n % k == 0:
n = n // k
factors.append(k)
if k < 3:
k += 1
else:
k = 6 * i + d
if d == 1:
d = -1
i += 1
else:
d = 1
if len(factors) == 0:
factors.append(n)
print(factors)