PYTHON语言,本人新手

来源:百度知道 编辑:UC知道 时间:2024/05/30 11:15:42
for n in range(2,10 ):
for x in range (2,n):
if n % x ==0:
print (n,'equals',x,'*',n/x)
break
else:
print (n,'is a prime number')
这段程序的结果为什么是

3 is a prime number
4 equals 2 * 2.0
5 is a prime number
5 is a prime number
5 is a prime number
6 equals 2 * 3.0
7 is a prime number
7 is a prime number
7 is a prime number
7 is a prime number
7 is a prime number
8 equals 2 * 4.0
9 is a prime number
9 equals 3 * 3.0

如果是要每个数对应只输出一个结果该怎么改呢,本人用的3.01的PYTHON
二楼的。。。SyntaxError: invalid syntax (<pyshell#12>, line 11)

你的判断有问题,每个数字必须判断从2-n,不能判断一个就判定是prime,
所以要加一个参数来定,是否在从2到n除的过程中有没有除尽的情况,看下面的代码:(百度没有缩进还真是麻烦),你需要自己去掉短线

for n in range(2,10):
--flag = 0
--for x in range(2,n):
----if n%x==0:
--------print (n, 'equals', x,'*',n/x)
--------flag=0
--------break
----else:
--------flag=1
--------continue
----if flag==1: print (n, 'is a prime number')

结果:
(3, 'is a prime number')
(4, 'equals', 2, '*', 2)
(5, 'is a prime number')
(6, 'equals', 2, '*', 3)
(7, 'is a prime number')
(8, 'equals', 2, '*', 4)
(9, 'equals', 3, '*', 3)

楼主,二楼的没问题啊,我的是python2.5
要不你把最后一句改成
----if flag==1:
--------print (n, 'is a prime number')

你自己可以试试啊!不过要注意缩进