Python分解程序

Python分解程序,python,if-statement,for-loop,factorization,Python,If Statement,For Loop,Factorization,我是编程新手,我正在尝试编写一个程序,从输入中获取一个正整数n,然后输出n的所有因式分解 例如,如果n=10,程序将输出 1乘以10等于10 2乘以5等于10 5乘以2等于10 10乘以1等于10 我认为最简单的方法是使用嵌套在for循环中的if语句。有谁能为我提供一些指导来帮助我创建这个?到目前为止我已经 n = int(input()) a = 0 b = n for a in range(0, n): if a * b !=n: continue if a *

我是编程新手,我正在尝试编写一个程序,从输入中获取一个正整数n,然后输出n的所有因式分解

例如,如果n=10,程序将输出
1乘以10等于10
2乘以5等于10
5乘以2等于10
10乘以1等于10

我认为最简单的方法是使用嵌套在for循环中的if语句。有谁能为我提供一些指导来帮助我创建这个?到目前为止我已经

n = int(input())
a = 0
b = n
for a in range(0, n):
    if a * b !=n:
      continue
    if a * b ==n:
      print (a+ "times" +b+ "equals" +n)
    a=a+1
    b=n-1

但由于某种原因,它不起作用。我认为我的总体思路是正确的,但我的代码显然是错误的。

您的代码和逻辑都有一些问题。您将
a
增加两次(使用
for
和加法),
b
在循环中第一次变为
n-1
,并保持这种方式,但即使没有(例如
b=b-1
),它也不会工作,因为如果同时增加
a
和减少
b
,除非碰巧匹配,否则无法找到正确的值

n = 10
for divisor in range(n, 0, -1): # reverse range
    if (n%divisor == 0):       # if modulo is 0
        print("%d times %d equals %d", (n/divisor, divisor, n)
除此之外,没有必要检查
a*b!=n
,您需要对整数调用
str
,以将它们添加到字符串中,并且
范围中的0是多余的

whncode的答案是一个优雅的解决方案(除了我试图纠正的几个错误),但使用您的逻辑,您可以这样做:

for a in range(1, n+1):
    for b in range(1, n+1):
        if a * b == n:
            print str(a) + " times " + str(b) + " equals " + str(n)

您似乎没有尝试过此操作-StackOverflow用于特定的编程问题,而不是一般帮助。试着实现这一点,然后回来问一个问题,如果你有一个具体的问题。非常感谢你,保罗真的很感激。我仍然在努力学习Python atm。我以前从来没有做过任何编程,所以我正在努力克服一系列的挑战,其中一些挑战我可以轻松地完成,而其他一些挑战你可以清楚地看到,我正在努力克服。谢谢你的帮助。