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

Прога делит до того момента, пока не остаётся просто число, большее 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 ba:
break
print(a)
for i in range(len(simple)):
if nsimple[i]>0:
print(simple[i],nsimple[i])
print("fine")
time.sleep(900)
17 октября 2017 в 23:21
Ближайшие курсы

Как начать свой путь в разработке?
Онлайн-курс
26
февраля
Язык C#: изучи однажды, используй везде!
Онлайн-курс
26
февраля
Зачем нужны тестировщики, если команда разработчиков не пишет баги
Онлайн-курс
26
февраля
Новые статьи

«После Scratch поняла, что не хочу бросать программирование»
27100

Что такое MVP и зачем его делать
26100

Как монетизировать Android-приложения в Play Market
46100