3 条题解
-
2
这一看就得用函数的,在函数里写上判断素数的程序,接着一套循环遍历,刚开始先把sum设为0,接着循环,如果循环变量是函数就把sum加上一,表示1到n之间又有一个素数了,最后打印出sum和换行,完事!
#include <bits/stdc++.h> using namespace std; int prime(int n) { bool f = true; for (int i = 2; i < n; i++) { if (n % i == 0) { f = false; break; } } return f; } int main() { int n, sum; for (int i = 1; i <= 114514; i++) { cin >> n; sum = 0; for (int j = 2; j <= n; j++) { if (prime(j)) { sum++; } } if (n != 0) { cout << sum << endl; } } return 0; }
-
1
其实本题就是质数加循环遍历,没什么难点
#include <bits/stdc++.h> #define int long long using namespace std; int n; bool isprime(int n) { for (int i = 2; i <= sqrt(n); i++) if (n % i == 0) return false; return true; } int check(int n) { int ans = 0; for (int i = 2; i <= n; i++) if (isprime(i)) ans++; return ans; } signed main() { while(cin >> n) { if (n == 0) break; cout << check(n) << endl; } return 0; }
-
0
我说我乱编的,对了就行,反正我看不懂。
#include <bits/stdc++.h> using namespace std; int main() { for(long long i=1;i<=9999999;i++) { long long n,d=1; cin >> n; if(n==0) { break; } int num=0; for(int j=1;j<=n;j++) { d=1; for(int c=2;c<j;c++) { if(j%c==0) { d=0; break; } } if(d==1) { num++; } } cout << num-1 << endl; } }
- 1
信息
- ID
- 176
- 时间
- 1000ms
- 内存
- 64MiB
- 难度
- 2
- 标签
- 递交数
- 84
- 已通过
- 50
- 上传者