1. 程式人生 > >編寫Python程式求1000以內的質數

編寫Python程式求1000以內的質數

求質數的三種方法:

/*求素數的三種方法 
一:for(i=2;i<=(n-1);i++) 
if(n%i==0)i在2到n-1之間任取一個數,如果n能被整除則不是素數,否則就是素數 

二:for(i=2;i<n/2;i++) 
if(n%i==0) /*i在2到n/2之間任取一個數,如果n能被整除則不是素數,否則就是素數 

三:for(i=2;i<(n=sqrt(n));i++) 
if(n%i==0) /*i在2到sqrt(n)之間任取一個數,如果n能被整除則不是素數,否則就是素數,在下省了下面的輸出步驟*/

Python code:

#!/usr/bin/env python
# -*- encoding:utf-8 -*-
'''
求質數或素數
先弄清楚什麼是質數?
質數就是隻能被1和它本身整除的數,1和0不是質數也不是合數
'''

def primeNumber(n):
    x = 1    # x累計1到n中的質數個數,由於2也是質數,這裡先加+1
    for i in range(3,n+1):  # 3到n+1取值(取一個值出來用內迴圈判斷此數是否為質素)
        result = True
        for j in range(2,i-1):   # 2到i-1之間有沒有被整數的數,有則不是質素
            if i % j == 0:
                result = False
        if result == True:
            print i,
            x += 1
    print '\n%d 內有 %d 個質數' %(n,x)
primeNumber(1000)