#Prime factor calculator
num = int(input("Give me a number: "))
sqrt = int((num**(1/2))//1)
primfact = []
for i in range (1,sqrt+1): #This block wont work if num < 10.
isqrt = int((i**(1/2))//1)
for k in range (1,isqrt+1):
if i % k != 0:
if num % i == 0:
num = num / i
primfact.append(i)
if len(primfact) == 0: #Solves it for small num.
for j in range (1,num+1):
if num % j == 0:
num = num / j
primfact.append(j)
print("Prime factors for your number: ",primfact)
First block won't work for small num (for ex. num = 9) that's why I added another if loop. First block works well with big numbers, but it takes a few minutes.