Python 返回严格小于n的素数的函数
问题在于nbPremiers,如果n=2,它会在应该为0时返回给我2。前两个函数是正确的,它们的工作方式完全符合我的要求。最后一个方法是将原始数的数目严格地计算为小于n。您的代码中有几个错误;其中一个与Python 返回严格小于n的素数的函数,python,python-3.x,Python,Python 3.x,问题在于nbPremiers,如果n=2,它会在应该为0时返回给我2。前两个函数是正确的,它们的工作方式完全符合我的要求。最后一个方法是将原始数的数目严格地计算为小于n。您的代码中有几个错误;其中一个与i和n相混淆-为参数使用更好的名称将对您有所帮助 请注意,0和“1”不是素数 def estDiviseur(i,n): return n%i==0 def estPremier(n): b=0 if n==1: return False for
i
和n
相混淆-为参数使用更好的名称将对您有所帮助
请注意,0
和“1”不是素数
def estDiviseur(i,n):
return n%i==0
def estPremier(n):
b=0
if n==1:
return False
for i in range(1 , n+1):
if estDiviseur(i,n)==True:
b=b+1
if b>2:
return False
else:
return True
def nbPremiers(n):
c=0
for i in range(0,n):
if estPremier(i)==True:
c=c+1
return c
您的代码中有几个错误;其中一个与
i
和n
相混淆-为参数使用更好的名称将对您有所帮助
请注意,0
和“1”不是素数
def estDiviseur(i,n):
return n%i==0
def estPremier(n):
b=0
if n==1:
return False
for i in range(1 , n+1):
if estDiviseur(i,n)==True:
b=b+1
if b>2:
return False
else:
return True
def nbPremiers(n):
c=0
for i in range(0,n):
if estPremier(i)==True:
c=c+1
return c
所有这些函数都可以编写为一行程序:
0 False 0
1 False 0
2 True 0
3 True 1
4 False 2
5 True 2
6 False 3
7 True 3
8 False 4
9 False 4
10 False 4
11 True 4
12 False 5
13 True 5
14 False 6
15 False 6
16 False 6
17 True 6
18 False 7
19 True 7
无论你来自哪个国家,用英语写函数名通常是个好主意,尤其是当你在一个国际性的英语网站上提问时
注意,您只需要检查2和sqrt(n)
之间的除数
一个更有效的方法是使用
最后,这通常是为小于或等于
n
的素数定义的。所有这些函数都可以写成一行:
0 False 0
1 False 0
2 True 0
3 True 1
4 False 2
5 True 2
6 False 3
7 True 3
8 False 4
9 False 4
10 False 4
11 True 4
12 False 5
13 True 5
14 False 6
15 False 6
16 False 6
17 True 6
18 False 7
19 True 7
无论你来自哪个国家,用英语写函数名通常是个好主意,尤其是当你在一个国际性的英语网站上提问时
注意,您只需要检查2和sqrt(n)
之间的除数
一个更有效的方法是使用
最后,这通常是为小于或等于
n
的素数定义的?这不是一个未使用的变量,所以请命名它。FWIW,我建议最好使用英文名称,而不是法文名称,因为这样对国际社会来说更容易。我可能会把est\u premier
中最后的b
内容简化为返回b2是一个素数,用变量表示,这很好。增加翻译更正2。谢谢你的建设性发言。非常感谢!但最后的问题是:如果是最好的(n),它是最好的(i),而且一切都很好地工作?这不是一个未使用的变量,所以请命名它。FWIW,我建议最好使用英文名称,而不是法文名称,因为这样对国际社会来说更容易。我可能会把est\u premier
中最后的b
内容简化为返回b2是一个素数,用变量表示,这很好。增加翻译更正2。谢谢你的建设性发言。非常感谢!但最后的问题是:如果条件为n,那么它就是if-est-premier(i),并且一切都正常工作。顺便说一句,如果某个条件为True,那么通常最好编写而不是。请参见.BTW,如果某个条件为
,则通常最好编写,而不是如果某个条件=True:
,则编写。看见