計算素數(C語言實現)


  素數又稱質數,指在大於1的自然數中,除了1和它本身以外不再有其他因數的自然數。因此素數為非負整數。

  本文實現了一種求小於或等於整數number的素數的方法,使用C語言實現。

  以下為C代碼實現:

 1 #include <stdio.h>
 2 #include <stdlib.h>
 3 
 4 
 5 
 6 //求小於或等於number的素數
 7 int primenumber(int number)  8 {  9     int ii = 0, jj = 0; 10     int pnumber = 0; 11     int pncount = 0; 12     int* pnumarray = NULL; 13 
14     pnumarray = (int*)malloc(number*sizeof(int)); 15     if(!pnumarray) 16  { 17         printf("Error: Fail to malloc pnumarray!\n"); 18         return -1; 19  } 20     for(ii=1; ii<number; ii++) 21  { 22         pnumber = ii+1; 23         jj = 0; 24         while(jj<pnumber) 25  { 26             if((pnumber/(jj+1)*(jj+1) == pnumber) && ((jj+1) != 1) && ((jj+1) != pnumber)) 27  { 28                 break; 29  } 30             else
31  { 32                 jj++; 33  } 34  } 35         if(jj == pnumber) 36  { 37             pnumarray[pncount] = pnumber; 38             printf("pnumber<%d>:[%d]\n", pncount, pnumber); 39             pncount++; 40  } 41  } 42     free(pnumarray); 43     
44     return pncount; 45 } 46 
47 int main() 48 { 49     int pnumber = 3*3*3*3*3; 50     int pncnt = 0; 51     printf("pnumber is [%d]\n", pnumber); 52     pncnt = primenumber(pnumber); 53     printf("The total primenumber is [%d]\n", pncnt); 54     
55     return 0; 56 }

  本文的實現為基本實現,沒有做優化,后面有時間再考慮進一步優化實現。


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM