码迷,mamicode.com
首页 > 其他好文 > 详细

素数判别算法

时间:2014-09-15 01:01:27      阅读:337      评论:0      收藏:0      [点我收藏+]

标签:style   blog   color   io   os   for   div   sp   log   

素数筛选法

原理就是当i是素数的时候,i的所有的倍数必然是合数。如果i已经被判断不是质数了,那么再找到i后面的质数来把这个质数的倍数筛掉。算法实现

 1 #include <iostream>
 2 #include <math.h>
 3 using namespace std;
 4 
 5 int main()
 6 {
 7     int N = 1000000;
 8         //prime用来保存下标i是否是素数
 9     bool prime[N+1];
10         //初始化,偶数(除了2)都是合数
11     for (int i = 0; i < N; i++)
12     {
13         if (i%2 == 0 && i != 2)
14             prime[i] = false;
15         else
16             prime[i] = true;
17     }
18 
19     for (int i = 3; i <= sqrt(N); i += 2)
20     {
21                 //若i不是素数,则i的倍数都不是素数
22         if (prime[i])
23             for (int j = i+i; j <= N; j += i)
24                 prime[j] = false;
25     }
26 
27     for (int i = 2; i <= N; i++)
28     {
29         if (prime[i])
30             cout << i << endl;
31     }
32     
33     return 0;
34 }

 

素数判别算法

标签:style   blog   color   io   os   for   div   sp   log   

原文地址:http://www.cnblogs.com/bournet/p/3972023.html

(0)
(0)
   
举报
评论 一句话评论(0
登录后才能评论!
© 2014 mamicode.com 版权所有  联系我们:gaon5@hotmail.com
迷上了代码!