Python 数字1-1000的素数测试
作为一个家庭作业,我必须写一个质数测试,它给出一个“真”或“假”的陈述。棘手的是,我必须写一个csv.-文件,其中包括数字1到1000的“真”和“假”语句。 我把这段代码用于素数测试Python 数字1-1000的素数测试,python,function,for-loop,Python,Function,For Loop,作为一个家庭作业,我必须写一个质数测试,它给出一个“真”或“假”的陈述。棘手的是,我必须写一个csv.-文件,其中包括数字1到1000的“真”和“假”语句。 我把这段代码用于素数测试 def Primzahl(n): if n < 2: return False if n == 2: return True if not n & 1: return False for x in range(3, int(n**0.5) + 1, 2):
def Primzahl(n):
if n < 2:
return False
if n == 2:
return True
if not n & 1:
return False
for x in range(3, int(n**0.5) + 1, 2):
if n % x == 0:
return False
return True
我的for循环只给出11000个数字,而不给出正确或错误的陈述。我必须在for循环中包括if和else吗?有人能帮忙吗?问题是打印(i)。这将写入
i
,这是您的通话范围内的号码。您还需要打印函数返回的值,例如,print(Primzahl(i))
当前您只打印i,而不是方法返回的值。您没有对方法的返回值执行任何操作。您应该将结果分配给一个变量,并打印该变量。(也可以从print语句中调用该方法。)
你的缩进不正确。此代码将导致语法错误。primzahl函数有一个返回值。你可以用这个<代码>如果primzahl(i):打印(i,'是素数');其他:打印(i,‘不是素数’
很抱歉,我的代码的复制和粘贴有一些问题。非常感谢你!你救了我一天,让我更清楚python是如何工作的!
for i in range (1,1001):
Primzahl (i)
print (i)
for i in range (1,1001):
isPrime = Primzahl(i)
print (i + ": " + isPrime)