1. 程式人生 > >學習程式之路--入門

學習程式之路--入門

今天記一下素數的優化:質數又稱素數。指在一個大於1的自然數中,除了1和此整數自身外,不能被其他自然數(不包括0)整除的數。
按照概念編出的程式如下:

#define _CRT_SECURE_NO_WARNING 1 #include <stdio.h> int main() { int i,j; for(i=2;i<=n;i++) // (1) { for(j=2;j<i;j++) // (2) if(ij)break; if(j>=i) // (3) printf("%d ",i); } return 0; } 程式說明: 將 j 從2開始取到 i,中間有一個能整除i的,就不是素數,直到 j

i,說明該數只能被1和它本身整除,即該數為素數。 優化方法:第一種:將(1)改為 for(i=2;i<=n,i+=2),這是因為偶數不可能是素數。 第二種:將(2)改為for(j=2;j<=sqrt(i);j++),(3)改為if(j>sqrt(i))。這是因為若i=a*b;那麼兩個因子a或者b都不可能大於根下i。 第三種:將(2)改為for(j=2;j<=i/2;j++),(3)改為if(j>i/2)。同第二種原因,兩個乘數必有一個小於等於i/2。