题目链接: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;
}
点个赞再走吧!
标签:10,桐桐,int,代码,素数,筛选 From: https://www.cnblogs.com/Ace-29/p/18279039