C/C++教程

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

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

这篇关于计算素数(C语言实现)的文章就介绍到这儿,希望我们推荐的文章对大家有所帮助,也希望大家多多支持为之网!