1,实例代码:
#include <iostream>
using namespace std;
const int MAX=100;
bool isPrime[MAX+1];
int total;//计数
int prime[MAX+1];
//线性筛法寻找素数
void makePrime()
{
memset(isPrime,true,sizeof(isPrime));
memset(prime,0,sizeof(prime));
for(int i=2;i<=MAX;i++)
{
if(isPrime[i]) prime[total++]=i;
for(int j=0; j<total && i*prime[j]<=MAX; j++)
{
isPrime[i*prime[j]]=false;
//i此时不是素数,只是拓展用
if(i%prime[j]==0) break;
}
}
}
int main()
{
makePrime();
for(int i=0;i<total;i++)
{
cout<<prime[i]<<" ";
if((i+1)%10==0) cout<<endl;
}
return 0;
}
分享到:
相关推荐
线性筛法求素数的原理与实现
简单易懂的质数筛法_陈牧歌.pdf
压缩包内包含C语言线性筛法的程序,经测试,能够正常运行,筛出一定范围内的素数,具体范围可以根据需要修改。
使用埃拉托斯特尼筛法寻找质数的C++函数
利用筛法求素数利用筛法求素数利用筛法求素数利用筛法求素数利用筛法求素数
线性筛法求素数的原理与实现.docx
堆,并查集,快速幂,快排,线性素数筛,详情见代码
资源名:MATLAB寻找素数的源程序代码_prime_number_素数_素数寻找_matlab 资源类型:matlab项目全套源码 源码说明: 全部项目源码都是经过测试校正后百分百成功运行的,如果您下载后不能运行可联系我进行指导或者...
能够在线性时间内筛出素数,并且对于计算欧拉函数值
利用C++实现了筛法求素数。代码简洁、明了、易懂。详情见附件。
素数、动图、圆心与半径、常微分方程求解、非线性方程组求解
之前在考研机试的时候看到了这个素数筛法,觉得还挺有趣的。解释下其中的一点,j为什么从i*i开始,按照一般思路应该从i*2开始的,但是仔细分析会发现i*i已经覆盖了i*2这个条件了,因此从i*i开始了。
判断质数的改进方法。
最快的素数筛法, 2秒初始化后在奔腾4上能算出2^31 以内素数个数,之后10ms内算出任意 0-2^31之间素数个数,可快速的计算第k个素数, 枚举区间[n, m](m - n ^5)以内素数等 还可以计算第k个数,分因素分解 Prime[78499]...
使用数组,运用筛法球素数,效率高,只需该变N的大小变可以求出N以内的素数。
计算10^18素数筛法, 目前这个是国内最快的筛法程序(如果你有比我还快的, 个人给你500元奖励 * 快的倍数),比国外primesieve略慢20%, , 使用非常方便, 输入两个数得到素数个数, 共计3000行C++代码。采用10多...
python3的廖雪峰,关于filter,利用埃氏筛法求素数的。
一种快速素数筛法
基于MPI实现埃拉托斯特尼筛法及性能优化实验报告.docx
RSA算法基于一个十分简单的数论事实:将两个大素数相乘十分容易,但是想要对其乘积进行因式分解却极其困难,因此可以将乘积公开作为加密密钥。RSA算法是第一个能同时用于加密和数字签名的算法,也易于理解和操作。...