素數的定義:是指在大於1的自然數中,除了1和它本身以外不再有其他因數的自然數。即只能被1和自己本身整除的數。
判定一個數是否為素數的基本思路:
1、了解素數的定義,一個正整數n若為素數,則它的約數只能是1和n本身,
2、根據定義,我們需要將這個數除以從2到n-1之間的全部正整數,如果全部都不能整除,則這個數便是素數。若是其中有一個數能被整除,則這個數是個合數,而不是素數。 因此,用求余算法%不失為一種有效的方法。
3、根據上述原理,我們可以用while循環來實現
n = int(input("請輸入要判斷的整數:")) i = 2 #注意,為什么i的取值范圍是(2,n/2+)而不是(2,n-1)呢?其實取(2,n-1)也是可以行的,只是運算量比較大而已,浪費資源。 #因為當i>n/2時,n是不可能整除i的,所以i的最大取值范圍到n/2即可,這樣能大大減少運算量。(思路可以) while i <= int(n/2)+1: if n%i == 0: break #如果i仍然不能被n整除,那么就自增1,繼續執行求余循環,直到i取到最大值為止 i += 1 #如果在(2,n/2)之間的所有數字都不能被n整除,那么就可以認定這個數是素數。 else: print("%d是素數" % n)