题目描述
请你编程运用自定义函数,输入的整数 n ,计算 n 以内的素数个数。
输入格式
一行一个整数 n 。
输出格式
一行一个整数,输出 n 以内的整数个数。
样例数据
输入样例 #1 | 输出样例 #1 |
---|---|
5 | 3 |
样例分析
如上所述。
数据范围
对于 100% 的数据: 1≤n≤10000
解题:
#include<bits/stdc++.h>
using namespace std;
int n;
int primenum(int n){
int x=0;
bool a[10005];
for(int i=1;i<=n;i++)a[i]=true;
for(int i=2;i<=sqrt(n);i++)if(a[i])for(int j=i+i;j<=n;j+=i)a[j]=false;
for(int i=1;i<=n;i++)if(a[i])x+=1;
return x-1;
}
int main(){
scanf("%d",&n);
printf("%d",primenum(n));
return 0;
}