筛选求素数
题目链接:https://bzoj.org/d/rumen/p/488
Description
桐桐在学完了上节课的知识后,对信息学越发感兴趣了。桐桐是一个很善于思考的学生,她发现上节课中例题的n 最大是40000,如果数据再大一些,比如n=10^7,那么判断素数的算法能否在1秒内给出答案呢?桐桐用程序实际测试 的时间超过了 1秒,你能帮助桐桐解决这个难题吗?
Input
一个正整数n(1<n≤10^7)。
Output
输出不大于n的所有素数
Samples
输入数据 1
10
输出数据 1
2 3 5 7
Sol:代码十分简单,就是筛的时候要从2开始
代码:
#include<bits/stdc++.h>
using namespace std;
bool f[10000010];
int main()
{
int n;
cin>>n;
for(int i=2;i*i<=n;i++)
if(!f[i])
for(int j=i;j<=n/i;j++)
f[i*j]=true;
for(int i=2;i<=n;i++)
if(f[i]==false)
cout<<i<<endl;
return 0;
}
点个赞再走吧!
【推荐】国内首个AI IDE,深度理解中文开发场景,立即下载体验Trae
【推荐】编程新体验,更懂你的AI,立即体验豆包MarsCode编程助手
【推荐】抖音旗下AI助手豆包,你的智能百科全书,全免费不限次数
【推荐】轻量又高性能的 SSH 工具 IShell:AI 加持,快人一步
· TypeScript + Deepseek 打造卜卦网站:技术与玄学的结合
· Manus的开源复刻OpenManus初探
· AI 智能体引爆开源社区「GitHub 热点速览」
· 从HTTP原因短语缺失研究HTTP/2和HTTP/3的设计差异
· 三行代码完成国际化适配,妙~啊~