天天看點

python求質數

  1. 質數:又稱素數,乘法因子隻有1和它自身的自然數;顯然,素數肯定是奇數(除去2),而奇數卻不一定是素數。如:9是奇數,但是它還有3這個乘法因子。
  2. 那麼如何判斷一個數是否為質數呢?

    先從乘法因子讨論,一個自然數的最小乘法因子必然是一組質數,對吧,比如15,它的乘法因子有3,5(從數學角度上,1也是,但是對于程式沒有影響,暫不讨論),而3和5都是質數。

    也就是說,一個數如果是質數的話,它必然不能被2、3、5、7整除,這樣就很容易判斷一個數是否為質數了。

程式設計環境:

centos 7

python 3.6.6

這裡求的是100萬以内的質數
n=4
print(2,3,5,7)
for i in range(2,10**6):
    if i%2!=0:
        if i%3!=0:
            if i%5!=0:
                if i%7!=0:
                    n+=1
                    print('%d,'%i)
print('the number is %d'%n)

           

結果:共有228574個質數

代碼的一些解釋;

  1. n=4;是因為2、3、5、7這四個質數,循環中運作的結果不含這幾個數,應另外加上。
  2. 在python3中i%2表示求餘
  3. python中“**”表示幂運算