好的,所以我一直在做一个名为cscircles的在线网站,开始学习python。我给出的一个练习告诉我要做以下几点:“如果a×b = n,我们称之为n的因子分解。在本练习中,编写一个从输入中取正整数n的程序,然后输出n的所有因子分解;你应该遵循以下例子给出的格式为n = 10:
1次10等于10
2次5等于10
5次2等于10
10次1等于10 “。
所以,我写的代码就是这样做的,但是我能够做的就是打印因子。这是我写的代码及其输出:
n = int(input())
for i in range(1,n):
if n%i == 0:
print(i)
if n%i > 0:
continue
现在这只输出因子,例如,如果我输入10,它会给我这个输出:
“的 1
2
5 “
所以,我的问题是我应该改变什么来使它如果我输入10它会给我这个输出:
“ 1次10等于10
2次5等于10
5次2等于10
10次1等于10 “
提前致谢!
答案 0 :(得分:0)
您可以动态确定第一个因素:
n = int(input())
for i in range(1,n):
if n%i == 0:
print("%s times %s is %s")%(i, n/i, n)
if n%i > 0:
continue
您可以进行一些优化,例如在获得所有单个数字之前,您只需要检查最多n/2
的因素。
陈述' 1次10是10'并且' 10次1是10'是等价的,你可能不应该同时打印 - 除非这是他们对你的要求。