筛选素数(埃式筛选法)
2018-03-13 18:16
239 查看
#include <iostream>
#include <cstring>
using namespace std;
int ASSX(int n,int *prime,bool *is_prime)
{
int i=2,c=0,j;
memset(is_prime,true,sizeof(int )*10000); //给is_prime[ ]数组全部赋为true值
//memset 函数头文件件<cmemory>或<cstring>, memset(首地址,替换体, sizeof(数据类型)*数量);
is_prime[0]=is_prime[1]=false;
for(i=2;i<=n;i++)
{
if(is_prime[i])
{
prime[c++]=i;
for(j=2*i;j<=n;j=j+i) //找倍数
{
is_prime[j]=false;
}
}
}
return c;
}
int main()
{
int prime[10000];
bool is_prime[10000];
int c,i;
int n;
cin >>n;
c=ASSX(n,prime,is_prime);
for(i=0;i<c;i++)
cout <<prime[i]<<endl;
return 0;
}
#include <cstring>
using namespace std;
int ASSX(int n,int *prime,bool *is_prime)
{
int i=2,c=0,j;
memset(is_prime,true,sizeof(int )*10000); //给is_prime[ ]数组全部赋为true值
//memset 函数头文件件<cmemory>或<cstring>, memset(首地址,替换体, sizeof(数据类型)*数量);
is_prime[0]=is_prime[1]=false;
for(i=2;i<=n;i++)
{
if(is_prime[i])
{
prime[c++]=i;
for(j=2*i;j<=n;j=j+i) //找倍数
{
is_prime[j]=false;
}
}
}
return c;
}
int main()
{
int prime[10000];
bool is_prime[10000];
int c,i;
int n;
cin >>n;
c=ASSX(n,prime,is_prime);
for(i=0;i<c;i++)
cout <<prime[i]<<endl;
return 0;
}
相关文章推荐
- 筛选素数(埃式筛选法)
- 埃式筛选素数
- 关于筛选法的补充 素数较快筛选法 杭电1431
- 小于等于n的素数的个数(埃式筛选法和欧拉筛选)
- 埃式筛法——快速筛选n以内的素数
- 空间换时间思维——筛选法——N内求素数——一定要自己想,抄出来那部分代码拼接貌似可以,但不能写出来
- 筛选法求素数
- 素数筛选
- LightOj 1370(素数筛选打表)
- HDOJ(HDU) 2136 Largest prime factor(素数筛选)
- HDOJ(HDU) 2138 How many prime numbers(素数-快速筛选没用上、)
- 素数生成和素数测试--筛选法
- 郑轻OJ 1092: 素数表(函数专题) 筛选法选择素数
- hdu 2136 Largest prime factor(素数筛选)
- 素数筛选——爱拉托逊斯筛选法
- 质数/素数 和筛选
- HDU 2136 Largest prime factor【素数筛选法】
- 我的素数筛选法
- C/C++筛选法算素数
- 素数筛选与最大质因子