Разложить целое число на простые множители. Вывести на экран все простые множители (в порядке возрастания) и их порядки. Но выдает то же самое число
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 #после двойки идём по нечётным