Предмет: Информатика, автор: Senoki

Помогите! Python
Требуется разложить целое число N на простые множители и вывести результат в порядке возрастания.
У меня получился такой код:
if k == 1:
k = k+1
if k == 0:
k = k+2
r=[]
for x in range(k,n+1):
i=2
while i*i<=x:
if x%i==0:
break
i+=1
else:
r.append(x)
t = []
for g in r:
if g in a:
t.append(g)
for l in t:
u = []
e = a.count(l)
print(l, '^', e, "*", end=" ")
Надо исправить его, чтоб если число в степени один, то выводилось просто число без ^1. А ещё надо удрать в конце звездочку.
Заранее спасибо.

Ответы

Автор ответа: oopera280
0

Ответ

power = 0

n = int(input())

copy = n

i = 2

flag = False

while copy != 1:

 while copy % i != 0: i += 1

 power = 0

 while copy % i == 0:

    copy //= i

    power += 1

 if flag: print('*', end = '')

 else: flag = True

 if power > 1: print(str(i) + '^' + str(power), end = '')

 else: print(i, end = '')

 i +=


Senoki: код не работает.... там где if flag: непонятно, наличие чего проверяется в программе в этой строке, и еще по моему, тут бесконечный цикл
Автор ответа: teacher1011
0

n = int(input())

list_my = []

a = 2

while n > 1:

   if n % a == 0:

       list_my.append(a)

       n = n/a

   else:

       a += 1

print(list_my)

Похожие вопросы
Предмет: Английский язык, автор: Аноним
Предмет: Алгебра, автор: TANKIST258032