作为家庭作业,我必须写一个素数测试,它会给出一个“真实”或“虚假”的陈述。棘手的是,我必须写一个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?有人可以帮忙吗?
答案 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)