计算素数(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