0
for n in range(2, 6):
    for x in range(2, n):
        if n % x == 0:
            print(n, 'equals', x, '*', n // x)
            break
        elif x + 1 == n:
            print(n, 'is a prime number')

结果:

3 is a prime number 
4 equals 2 * 2 
5 is a prime number

谁能解释一下双重for循环,为什么它会跳过数字2?是不是因为最后一个数字不包含在 for x in range (2,2) 中,这个程序在使用 3 进行迭代时如何工作,我尝试使用 3 自己进行第二个 for 循环,我得到 2 并在另一行 3 , 那么它在第三行用 n%x ==0 做了什么。它在第 6 行使用 3 做了什么?谢谢,如果您能指导我完成此操作,我将不胜感激。

4

1 回答 1

0
for n in range(2, 6):

表示数字 2 到但不包括 6 中的 n。所以,从n = 2 下一行开始

for x in range(2, n):

n当前是 2,所以这意味着没有数字(从 2 开始,小于 2)。然后它使用下一个值n,即 3。这将range(2,3)只使用数字 2。依此类推。我建议最初只是查看循环的作用,而不需要任何代码来查找素数。

for n in range(2, 6):
    print n
    for x in range(2, n):
        print x

break如果找到一个除数,则循环中的素数逻辑sn

于 2013-11-10T17:10:24.530 回答