enter code hereMy code接受500-100000范围内的数字,并对它们进行两次质数测试。一次使用费米特的小定理,另一次使用更好的素性测试。给出的输出是每个在受精中被标识为素数的数字,在它旁边,它的正确的素性以true=prime和false=not素数的形式表示,例如:2753是素数真,2767是素数真,2777是素数真,2779是素数假,2789是素数真,我需要知道的是我如何只输出那些为假的数?我不能更改我调用的函数。
from exactPrimalityTest import *
import random
from fastPowerMod import *
for n in range(500,100001):
a = random.randint(1,n-1)
for i in range(10):
if (fastPowerMod(a,n-1, n) != 1):
break
else:
print n, "is prime", exactPrimalityTest(n)发布于 2013-02-22 12:52:02
打印前添加此检查
res = exactPrimalityTest(n)
if not res:
print n, "is prime", res发布于 2013-02-22 12:55:38
在最后一条else:语句中,将exactPrimality返回值赋给一个变量并执行if。
.
else:
primality = exactPrimalityTest(n)
if not primality:
print n, "is prime", primality很抱歉,我已经有一段时间没有使用python了,但这是一般的想法。
发布于 2013-02-22 12:51:59
from exactPrimalityTest import *
import random
from fastPowerMod import *
for n in range(500,100001):
a = random.randint(1,n-1)
for i in range(10):
if (fastPowerMod(a,n-1, n) != 1):
break
else:
if exactPrimalityTest(n) == False:
print n, "is prime False"https://stackoverflow.com/questions/15017039
复制相似问题