2016-03-23 211 views
-2

我想弄清楚如何打印最後一行代碼 - 無論它是否爲素數。我似乎無法使用我擁有的代碼進行打印。任何幫助,將不勝感激。謝謝!!在for循環中打印後打印

number = int(input("Enter a positive number to test: ")) 

while number <= 0: 
    print ("Sorry, only positive numbers. Try again.") 
    number = int(input("Enter a positive number to test: ")) 

test = 2 

number1 = number - 1 
for x in range (0, number1): 
    trial = number % test 
    if trial != 0: 
     print (test, "is NOT a divisor of", number, "...") 
     break 
     print (number, "is a prime number!") 
    else: 
     print (test, "is a divisor of", number, "...") 
     break 
     print (number, "is not a prime number!") 
    test = test + 1 
+1

的'print'聲明'後break'不可達。 – Maroun

+0

在運行整個循環(=測試所有數字)或找到因子之前,您無法決定數字是否爲素數(使用您的算法)。因此這兩個打印語句必須位於其他地方。我會建議執行for循環的'else'語句。當試用!= 0時,你也不能'破壞',因爲這意味着你的循環在那裏停止,並且不會繼續尋找因素。 – StefanS

回答

0

break語句結束分支的執行。以下print聲明永遠不會到達。

爲了得到正確的functionaility使用一個布爾值,並進行檢查底:

is_prime = True 

for x in range (2, number): 
    trial = number % x 
    if trial != 0: 
     print (x, "is NOT a divisor of", number, "...") 
    else: 
     is_prime = False 
     print (x, "is a divisor of", number, "...") 

if is_prime: 
    print (number, "is a prime number!") 
else: 
    print (number, "is not a prime number!") 

你也不需要使用一個變量test。直接使用範圍內的x

查看關鍵字Python reference瞭解更多信息。

0

語法:

if expression: 

    statement(s) 

else: 

    statement(s) 

它執行的所有語句與休息所以打印將永遠不會發生......