信息学奥赛一本通1151:素数个数 题解视频
1151:素数个数
时间限制: 1000 ms 内存限制: 65536 KB
提交数: 30050 通过数: 17041
【题目描述】
编程求2∼n(n为大于2的正整数)中有多少个素数。
【输入】
输入n(2≤n≤50000)。
【输出】
素数个数。
【输入样例】
10
【输出样例】
4
//信息学奥赛一本通1151:素数个数 题解视频(一本通题解、洛谷题解)
#include<bits/stdc++.h>
using namespace std;
//微信14808098 一起快乐学习信息学奥赛
//更多一本通题解视频 blog.youkuaiyun.com/weixin_42790071
//更多洛谷题解视频 百度搜:清远尚贤博客
bool isPrime(int p){
// 2-49999 = (2+49999)*25000 > 5000w
for(int i=2;i*i<=p;i++){
if(p%i==0){
return 0;//返回不是
}
}
return 1;//是
}
int main() {
int n;
cin>>n;
int ans =0;
for(int i=2;i<=n;i++){
if(isPrime(i)==1){
ans++;
}
}
cout<<ans<<endl;
return 0;
}
//微信14808098 一起快乐学习信息学奥赛
//更多洛谷题解视频 blog.youkuaiyun.com/weixin_42790071
//更多一本通题解视频 百度搜:清远尚贤博客