数字1 - 1000的素数测试

时间:2017-11-13 21:59:08

标签: python function for-loop

作为家庭作业,我必须写一个素数测试,它会给出一个“真实”或“虚假”的陈述。棘手的是,我必须写一个csv.-文件,其中包含数字1到1000的“true”和“false”语句。 我使用此代码进行素数测试

cat -n file_with_sed_code | grep '\\ \+$'

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-loop只给出数字1,1000而不是真或假的陈述。我是否必须在for循环中包含if和else?有人可以帮忙吗?

2 个答案:

答案 0 :(得分:3)

问题是print(i)。这将写入i,这是您range电话中的号码。您还需要打印函数返回的值,例如print(Primzahl(i))

答案 1 :(得分:0)

目前您只打印i,而不是方法的返回值。您没有使用方法的返回值执行任何操作。您应该将结果分配给变量并同时打印变量。 (您也可以从print语句中调用该方法。)

for i in range (1,1001):
isPrime = Primzahl(i)
print (i + ": " + isPrime)