埃拉托色尼筛法
来源:互联网 发布:话费充值平台源码 编辑:程序博客网 时间:2024/06/16 08:10
思想:
求解0~n之间所有素数并输出。先把0 和1删除,然后每次取当前最小的数入prime数组,同时把该最小数的倍数都删除。
最后得到全是素数的prime数组,和通常所说的素数打表一样。
模板代码:
#include <iostream>
#include <cstdio>#include <cstring>
using namespace std;
#define N 1000010
bool is_prime[N];
int prime[N];
int n_prime;
void doprime()
{
memset(is_prime, true , sizeof(is_prime));
is_prime[1] = 0;
n_prime = 0;
for(int i = 2 ; i < N; i++)
{
if(is_prime[i])
{
prime[n_prime++] = i;
for(int j = i + i ; j < N; j += i )
is_prime[j] = false;
}
}
}
int main()
{//freopen("in.txt","r",stdin);
doprime();
int n;
while(~scanf("%d",&n))
{
for(int i = 0 ; i < n ; i++)
printf("%d\n",prime[i]);
}
return 0;
}
0 0
- 埃拉托色尼筛法
- 程序3.5 埃拉托色尼筛法
- 埃拉托色尼筛法:求质数的方法
- 求质数:筛选法(埃拉托色尼筛法)
- crypt.3. 计算素数表: 埃拉托色尼筛法
- 计算整数N 以内所有素数——埃拉托色尼筛法
- 打印小于N的所有素数(埃拉托色尼筛法)
- 为什么书呆子不受欢迎? 《黑客与画家》
- nefu2
- 信息系统项目管理师考试经验分享
- java零散的基础
- android4.04 gps架构
- 埃拉托色尼筛法
- sql on RDD字段数受限22个
- Item 1: distinguish between pointers and references
- 辗转相除法
- ICA特征提取
- 6 包,单例模式,访问修饰符(public、protected,private)Object String
- 超详细在Ubuntu下安装JDK图文解析
- Ubuntu下安装Oracle11g(图文教程)
- java并发深入