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