Разложить целое число на простые множители. Вывести на экран все простые множители (в порядке возрастания) и их порядки. Но выдает то же самое число

N=int(input('12'))
F = N
for i in range(2, F):
    if F%i==0:
        d=0
        for B in range(2, i):
            if i % B ==0:
                d+= 1
        if d ==0:
            por =0
            while N % i ==0:
                por +=1
                N=N//i
            print(i,por)

Ответы (2 шт):

Автор решения: Salavat

Александр, добрый день. попробуйте вот так:

N=int(14)
F = N 
for i in range(2, F):
    if F%i==0:
        d=0 
        for B in range(2, i):
            if i % B ==0:
                d+= 1
        if d == 0:
            print(i)

небольшой совет, т.к. в питоне важны отступы, то код в вопросе нужно писать с отстутпами.

→ Ссылка
Автор решения: MBo
F = 39916800 # int(input())
d = 2
while F > 1:
    m = 0   #степень множителя
    while F % d == 0:    
        m += 1
        F //= d
    if m:
        print(d,':', m)
    d += 2 if d > 2 else 1   #после двойки идём по нечётным
→ Ссылка