#3904. [GESP2306 二级] 找素数
[GESP2306 二级] 找素数
找素数
题目描述
小明刚刚学习了素数的概念:如果一个大于1的正整数,除了1和它自身外, 不能被其他正整数整除,则这个正整数是素数。现在,小明想找到两个正整数 和 之间(包括 和 )有多少个素数?
【 输入描述】 输入 2 行,第一行包含正整数 ,第二行包含正整数 。约定 。 2 ≤ ≤ ≤ 1【0输00出描述】 输出一行,包含一个整数 ,表示找到 个素数。 【样例输入1】 2 10 【样例输出1】 4 【样例解释1】 在2和10之间有4个素数,分别为:2、3、5、7。 【样例输入2】 98 100 【样例输出2】 0 【参考程序】 #include using namespace std; int main() { int a = 0, b = 0, cnt = 0; cin >> a >> b; for (int n = a; n <= b; n++) { bool isPrime = true; for (int i = 2; i * i <= n; i++) { if (n % i == 0) { isPrime = false; break; } } if (isPrime) cnt++; } cout << cnt << endl; return 0; }
输入格式
输出格式
样例输入 #1
2
样例输出 #1
样例输入 #2
98
样例输出 #2
样例解释 #1
在2和10之间有4个素数,分别为:2、3、5、7。
数据范围
见题目描述
知识点与难度
本题涉及的知识点从属于 GESP 2级,难度等级:⭐ 。
测试点分布
| Subtask | 分值 | 测试点编号 | 说明 |
|---|---|---|---|
| 0 | 10 | 1~2 | 样例 |
| 1 | 20 | 3~8 | 小规模 / 特殊性质 |
| 2 | 15 | 9~11 | Hack |
| 3 | 30 | 12~20 | 中大规模 |
| 4 | 25 | 21~25 | 随机回归 |
生测试数据后,按实际 subtask 分组改写上表。