计算素数(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 }
本文的实现为基本实现,没有做优化,后面有时间再考虑进一步优化实现。

浙公网安备 33010602011771号