在此处输入代码我的代码获取范围500-100000中的数字并测试它们的素数两次。一旦有了fermit的小定理,再次用更好的素性测试。给出的输出是在fermits中被识别为prime的每个数字,并且在它旁边,其正确的素数形式为true = prime和false = not prime例如:2753是prime True, 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)
答案 0 :(得分:1)
在打印之前添加此检查
res = exactPrimalityTest(n)
if not res:
print n, "is prime", res
答案 1 :(得分:0)
在你的最后一个else语句中,将exactPrimality返回给var并执行if。
.....
else:
primality = exactPrimalityTest(n)
if not primality:
print n, "is prime", primality
抱歉,暂时没有使用python,但这是一般的想法。
答案 2 :(得分:-1)
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"