其他分享
首页 > 其他分享> > 计算素数(C语言实现)

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

  本文的实现为基本实现,没有做优化,后面有时间再考虑进一步优化实现。

标签:计算,int,pncount,number,C语言,素数,pnumarray,pnumber
来源: https://www.cnblogs.com/lrcsangel/p/14842099.html