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. А ещё надо удрать в конце звездочку.
Заранее .

ValeriaSalvatore ValeriaSalvatore    1   25.09.2021 18:43    0

Ответы
Igor20018 Igor20018  25.09.2021 18:50

ответ

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 +=

ПОКАЗАТЬ ОТВЕТЫ
azizovaezoz azizovaezoz  25.09.2021 18:50

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)

ПОКАЗАТЬ ОТВЕТЫ
Другие вопросы по теме Информатика