Разложение большого числа на простые множители

Andrew Petrushow

Прога делит до того момента, пока не остаётся просто число, большее 100 000, и выводит простые множители и их степени. При их перемножении получается немного другое число, почему так происходит?
import time
q=True
s=0
a=304888344611713860501504000000

simple=[2,3]
nsimple=[0,0]
for i in range(4,100000):
for k in simple:
if i%k==0:
q=False
break
if q:
simple.append(i)
nsimple.append(0)
q=True
print(len(simple))

while a>1:
b=a
for i in range(len(simple)):
if a%simple[i]0:
nsimple[i]+=1
a=a//simple[i]
break
if b
a:
break
print(a)

for i in range(len(simple)):
if nsimple[i]>0:
print(simple[i],nsimple[i])
print("fine")
time.sleep(900)

Andrew Petrushow около 1 месяца назадСпасибо 1
2 чел.