1 条题解
-
0
不使用函数
#include<bits/stdc++.h> using namespace std; int main(){ int n; cin>>n; int cnt=0;//计数器清零 for(int i=1;i<=n;i++) { bool flag=true;//判断i是否为质数 if(i<=1) flag=false; for(int j=2;j*j<=i;j++) if(i%j==0) { flag=false; break; } //如果flag为真,说明i为质数,计数器加一 if(flag==true) cnt++; } cout<<cnt<<"\n"; return 0; }
使用函数
#include<bits/stdc++.h> using namespace std; //返回值:布尔类型 //函数名/功能名:shizhishu //参数:一个 int 型参数 x bool shizhishu(int x){ //调用函数执行 shizhishu(i)时 //会先做一遍 int x=i; //小于2时直接返回假 if(x<2) return false; //如果在2~sqrt(x)之间发现了因子 也直接返回假 for(int i=2;i*i<=x;i++) if(x%i==0) return false; //如果前面的情况都没有发生,说明x是质数,返回真 return true; } int main(){ int n; cin>>n; int cnt=0;//计数器清零 for(int i=1;i<=n;i++) if(shizhishu(i)) cnt++; cout<<cnt<<"\n"; return 0; }
- 1
信息
- ID
- 371
- 时间
- 1000ms
- 内存
- 128MiB
- 难度
- 2
- 标签
- (无)
- 递交数
- 98
- 已通过
- 59
- 上传者