密码工程-小素数

1|0密码工程-小素数

  1. 在openEuler(推荐)或Ubuntu或Windows(不推荐)中完成下面任务
  2. 参考《密码工程》p107伪代码基于Eratosthenes算法实现 int SmallPrimeList(int n, int *plist, int *len), 其中plist返回素数列表,len返回列表长度(10’)
  3. 写出测试代码,至少包括 n=2, n=你的四位学号,n>2^20次方的测试代码,提交代码和运行结果截图

ss.c

/*
* 筛选法计算小于100000的素数
* 筛选法求最小的素数序列,原本是不朽的数学家们手工计算的方法,
*/
#include <iostream>
#include <cmath>
using namespace std;
const int MAXN = 2000000;
bool sieveflag[2000000 + 1] = { false, false, true };
void esieve(bool sflag[], int n)
{
// 初始化
for (int i = 3; i <= n; i++) {
sflag[i++] = true;
sflag[i] = false;
}
// 筛选
int max = sqrt(n);
for (int i = 3; i <= max; i++) {
if (sflag[i]) {
for (int j = i + i; j <= n; j += i)
sflag[j] = false;
}
}
}
int main()
{
int n;
printf("请输入最大值n\n");
scanf("%d", &n);
esieve(sieveflag, n);
for (int i = 2, num = 0; i <= n; i++) {
if (sieveflag[i]) {
++num;
cout << num << ":" << i << endl;
}
}
return 0;
}

1|0n=2

1|0n=1227(1048576)

1|0n=2^20


__EOF__

本文作者Oxygen_bean
本文链接https://www.cnblogs.com/GanNy/p/16359274.html
关于博主:评论和私信会在第一时间回复。或者直接私信我。
版权声明:本博客所有文章除特别声明外,均采用 BY-NC-SA 许可协议。转载请注明出处!
声援博主:如果您觉得文章对您有帮助,可以点击文章右下角推荐一下。您的鼓励是博主的最大动力!
posted @   氧气2019  阅读(71)  评论(0编辑  收藏  举报
相关博文:
阅读排行:
· 分享4款.NET开源、免费、实用的商城系统
· 全程不用写代码,我用AI程序员写了一个飞机大战
· MongoDB 8.0这个新功能碉堡了,比商业数据库还牛
· 记一次.NET内存居高不下排查解决与启示
· 白话解读 Dapr 1.15:你的「微服务管家」又秀新绝活了
点击右上角即可分享
微信分享提示