|
问题描述:输入一个数字,如果是素数就显示这是一个素数,如果不是就将它因式分解。
我写的代码如下:
#-*-coding:cp936-*-
while True:
n = input("请你输入一个数字,程序将会为你返回若干个素数的乘积的形式: ")
if n == 'q':
break
factor = 2
if n != 'q':
n = int(n)
while factor * factor <= n:
while n % factor == 0:
n //= factor
print(str(factor) + ' ')
factor += 1
if n > 1 :
print(str(n))
疑问:我想要表示成 如同 2*3*5*7这种形式,但是这一种就是每一个因式分解就占据一个答案。
我的尝试:
#-*-coding:cp936-*-
a = []
while True:
n = input("请你输入一个数字,程序将会为你返回若干个素数的乘积的形式: ")
if n == 'q':
break
factor = 2
if n != 'q':
n = int(n)
while factor * factor <= n:
while n % factor == 0:
n //= factor
a.append(factor)
factor += 1
if n > 1 :
a.append(n)
for number in a:
print(number + '*')
问题: 我建立了一个列表,将得到的结果加入到了列表里面,但是输出的时候,就得不到结果,所以有点不知道该怎么办。
我希望能得到的结果是比如我输入了 27 ,那么结果就是 3*3*3*的样式,但是最后虽然语法上没有问题,但是并不能显示结果,而是一直在重复 请你输入一个数字,程序将会为你返回若干个素数的乘积的形式:
希望能有老司机帮忙看一看,可能是我修改之后没有定义循环终止的条件,但是最开始的代码能完成任务啊。
|
|