#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 分组改写上表。