对N个自然数进行从大到小的排序(N可以定义任意大于1的常数),并找出其中的素数
1条回答 默认 最新
- 行走的bug制造机器 2019-04-17 22:02关注
#include <iostream> #include <algorithm> using namespace std; #define N 20000 void getprime(); //预先打表 int isprime[N]; //记录素数 int main() { int n; cin >> n; int *a = new int[n]; for (int i = 0; i < n; i++) //得到n个待判断的数 cin >> a[i]; sort(a, a + n); getprime(); //预先打表,打表后,数组isprime中素数为1,合数为0 for (int i = 0; i < n; i++) if (isprime[a[i]]) cout << a[i] << ' '; return 0; } void getprime() { int j; memset(isprime, -1, sizeof(isprime)); isprime[0] = isprime[1] = 0; for (int i= 2; i < N; i++) //素数的倍数变为合数 if (isprime[i]) for(j = i * i; j < N; j += i) isprime[j] = 0; }
解决评论 打赏 举报无用 1
悬赏问题
- ¥50 如何用脚本实现输入法的热键设置
- ¥20 我想使用一些网络协议或者部分协议也行,主要想实现类似于traceroute的一定步长内的路由拓扑功能
- ¥30 深度学习,前后端连接
- ¥15 孟德尔随机化结果不一致
- ¥15 apm2.8飞控罗盘bad health,加速度计校准失败
- ¥15 求解O-S方程的特征值问题给出边界层布拉休斯平行流的中性曲线
- ¥15 谁有desed数据集呀
- ¥20 手写数字识别运行c仿真时,程序报错错误代码sim211-100
- ¥15 关于#hadoop#的问题
- ¥15 (标签-Python|关键词-socket)