如何在python中打印出数字的分解?

时间:2018-01-05 19:21:00

标签: python-3.x

好的,所以我一直在做一个名为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

提前致谢!

1 个答案:

答案 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'是等价的,你可能不应该同时打印 - 除非这是他们对你的要求。