0
#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.

0 Answers0