0

在此处输入代码我的代码采用 500-100000 范围内的数字并测试它们的素数两次。一次是费米特小定理,一次是更好的素性检验。给出的输出是在 fermits 中被识别为素数的每个数字,在它旁边,其正确素数的形式为 true=prime 和 false=not prime 例如:2753 是素数 True,2767 是素数 True,2777 是素数 True,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)
4

3 回答 3

1

在打印之前添加此检查

res = exactPrimalityTest(n)
if not res:
    print n, "is prime", res
于 2013-02-22T04:52:02.120 回答
0

在你的最后一个 else: 语句中,将 exactPrimality 返回分配给一个 var 并执行一个 if。

......

else:
    primality = exactPrimalityTest(n)
    if not primality:
        print n, "is prime", primality

抱歉,有一段时间没有使用 python,但这是一般的想法。

于 2013-02-22T04:55:37.920 回答
-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"
于 2013-02-22T04:51:58.633 回答