2013-02-22 54 views
1

在此輸入代碼我的代碼將範圍在500-100000之間的數字測試它們的素數兩次。一旦用fermit的小定理,再次用更好的素性測試。給出的輸出是每個在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) 

回答

0

使用的if statement

if not exactPrimalityTest(n): 
    print n, "is prime", False 
-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" 
+0

這將計算'exactPrimalityTest(n)'兩次 – avasal 2013-02-22 04:52:32

1

你上別的打印

res = exactPrimalityTest(n) 
if not res: 
    print n, "is prime", res 
0

之前添加此檢查:聲明,分配exactPrimality恢復到VAR和做一個if。

.....在一段時間

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

對不起,沒有使用蟒蛇,但這是一般的想法。