#include <stdio.h>
int main()
{
//
随机输入整数N
采用筛选法
输出N以内的素数
//
return 0;
}
用筛选法求N以内的素数
- 写回答
- 好问题 0 提建议
- 追加酬金
- 关注问题
- 邀请回答
-
1条回答 默认 最新
- superSmart_Dong 2022-07-24 17:26关注
#include <iostream> #include <cmath> using namespace std; #define N 100 bool isPrime[N]; bool Prime(int n) { if (n<2) { return false; } if (n==2) { return true; } int upper=sqrt(static_cast<double>(n)); for (int i=2;i<=upper;i++) { if (n%i==0) { return false; } } return true; } int main() { isPrime[0]=isPrime[1]=false; isPrime[2]=true; int i=2; for (int i=3;i<N;i++) { if ((i&(0x01)) ==0) //用位运算代替i%2==0 { isPrime[i]=false; } else { isPrime[i]=true; } } int upper=sqrt(static_cast<double>(N)); for(int i=3;i<upper;i+=2) { if (isPrime[i] && Prime(i)) { for (int j=i+i;j<N;j+=i) { isPrime[j]=false; } } } int count=0; for (int i=0;i<N;i++) { if (isPrime[i]) { cout<<i<<" "; count++; } } cout<<endl; cout<<"素数个数为:"<<count<<endl; //最原始的求素数方法,速度很慢 //int count=0; //for (int i=2;i<N;i++) //{ // if (Prime(i)) // { // count++; // } //} //cout<<count<<endl; return 0; }
本回答被题主选为最佳回答 , 对您是否有帮助呢?解决 无用评论 打赏 举报
悬赏问题
- ¥20 给自己本科IT专业毕业的妹m找个实习工作
- ¥15 用友U8:向一个无法连接的网络尝试了一个套接字操作,如何解决?
- ¥30 我的代码按理说完成了模型的搭建、训练、验证测试等工作(标签-网络|关键词-变化检测)
- ¥50 mac mini外接显示器 画质字体模糊
- ¥15 TLS1.2协议通信解密
- ¥40 图书信息管理系统程序编写
- ¥20 Qcustomplot缩小曲线形状问题
- ¥15 企业资源规划ERP沙盘模拟
- ¥15 树莓派控制机械臂传输命令报错,显示摄像头不存在
- ¥15 前端echarts坐标轴问题