12 solutions
-
1
解题报告
撰写人: 胡弘宣
题意分析
给定一个区间 [a, b](包含 a 和 b),统计该区间内质数的个数。
难度等级
★★★☆☆
解题思路
循环查找
解题反思
循环起始注意
参考程序
#include<bits/stdc++.h> using namespace std; int n,n1,a=0,s; int main(){ cin>>n>>n1; for(int i=n;i<=n1;i++) { a=0; for(int j=2;j<i;j++) { if(i%j==0) { a=1; } } if(a==0) { s++; } } cout<<s; return 0; } -
1
解题报告
撰写人: 钟志杰
题意分析
这道题与上一道题差不多,只不过就是判断一个区间而已。
难度等级
★★☆☆☆
解题思路
这道题重点在于怎么判断质数,质数的判断方法如下:
1.质数数不能是1,因为质数要求是只有2个因数,而1只有1个因数。
2.质数只有2个因数。
3(附加).如果这个数为2的倍数(除了2),那这个数就不是质数
最后我们用for循环判断区间即可。解题反思
无
参考程序
#include<bits/stdc++.h> using namespace std; int a,b,s; bool zs(int x){//判断质数函数 if(x<=1) return 0;//如果≤1就不是质数 if(x%2==0&&x!=2) return 0;//判断二的倍数(除了2) for(int i=3;i*i<=x;i+=2){//一个个试探 if(x%i==0) return 0;//如果这个数有别的倍数,就不是质数 }return 1;//直到最后还没踢出去,就是质数 } int main(){//主函数 cin>>a>>b; for(int i=a;i<=b;i++){//一个个判断质数数量 if(zs(i)) s++;//记录数量 } cout<<s; return 0; } -
0
解题报告
撰写人: 陈天翊
题意分析
给定一个区间 [a, b]统计该区间内质数的个数。
难度等级
★☆☆☆☆
参考程序
#include<bits/stdc++.h> using namespace std; int main(){ int n=0; int a,b; bool s; cin>>a>>b; for(int i=a;i<=b;i++){ s=0; for(int j=2;j<i;j++){ if(i%j==0){s=1;break;} } if(i==2||s==0)if(a!=1)n++; } cout<<n; return 0; } -
0
解题报告
撰写人: 陈斯伟
题意分析
给定一个区间 [a, b](包含 a 和 b),统计该区间内质数的个数。
难度等级
★☆☆☆☆
解题思路
一个整数,表示区间 [a, b] 内质数的个数。
解题反思
: )
参考程序
#include <bits/stdc++.h> using namespace std; bool t(int n){ for(int i=2;i*i<=n;i++) if(n%i<1)return 0; return n>1; } int main(){ long long l,r,s=0; cin>>l>>r; for(long long i=l;i<=r;s+=t(i++)); cout<<s; return 0; } -
0
解题报告
撰写人: Jacy
题意分析
题目描述 给定一个区间 [a, b](包含 a 和 b),统计该区间内质数的个数。
输入格式 一行两个整数 a 和 b,其中 1 <= a <= b <= 1000000。
输出格式 一个整数,表示区间 [a, b] 内质数的个数。
难度等级
★★★☆☆
解题思路
用for循环列出质数表,不是质数的,对质数数组进行标记 随后输入区间范围 再用for循环对区间范围的质数数组看下是否有被标记,没被标记则累加
解题反思
无
参考程序
#include<bits/stdc++.h> using namespace std; int a[1000005],l,r,s; int main() { a[0]=1,a[1]=1; for(int i=2;i*i<1000000;i++) if(a[i]==0) for(int j=i+i;j<=1000000;j+=i) a[j]=1; cin>>l>>r; for(int i=l;i<=r;i++) if(a[i]==0)s++; cout<<s; return 0; } -
0
解题报告
撰写人: 陈沛宜
题意分析
统计两个数之间,有多少个质数
难度等级
★☆☆☆☆
解题思路
先判断是不是质数,统计后再输出
解题反思
无
参考程序
#include<bits/stdc++.h> using namespace std; using namespace std; bool isPrime(int num) { if (num < 2) { return false; } for (int i = 2; i <= sqrt(num); i++) { if (num % i == 0) { return false; } } return true; } int main() { int a, b; cin >> a >> b; int count = 0; for (int i = a; i <= b; i++) { if (isPrime(i)) { count++; } } cout << count << endl; return 0; } -
-1
解题报告
撰写人: 冯泽泓
题意分析
给定一个区间 [a, b](包含 a 和 b),统计该区间内质数的个数。
难度等级
★★★★★
解题思路
先判断是不是质数,统计后再输出
解题反思
c要重置
参考程序
#include<bits/stdc++.h> using namespace std; int a,b,c,d; int main(){ cin>>a>>b; for(int i=a;i<=b;i++) { c=1; for(int j=2;j<i;j++) { if(i%j==0){c++;} } if(c==1){d++;} } cout<<d; return 0; } -
-1
解题报告
撰写人: 林毓瀚
题意分析
给定一个区间 [a, b](包含 a 和 b),统计该区间内质数的个数。
难度等级
★☆☆☆☆
解题思路
思路
解题反思
反思
参考程序
#include <iostream> #include <cmath> using namespace std; bool isPrime(int num) { if (num < 2) { return false; } for (int i = 2; i <= sqrt(num); i++) { if (num % i == 0) { return false; } } return true; } int main() { int a, b; cin >> a >> b; int count = 0; for (int i = a; i <= b; i++) { if (isPrime(i)) { count++; } } cout << count << endl; return 0; } ```language -
-3
#include <cmath> using namespace std; bool isPrime(int num) { if (num < 2) { return false; } for (int i = 2; i <= sqrt(num); i++) { if (num % i == 0) { return false; } } return true; } int main() { int a, b; cin >> a >> b; int count = 0; for (int i = a; i <= b; i++) { if (isPrime(i)) { count++; } } cout << count << endl; return 0; }
- 1
Information
- ID
- 603
- Time
- 1000ms
- Memory
- 256MiB
- Difficulty
- 1
- Tags
- # Submissions
- 105
- Accepted
- 34
- Uploaded By