U305406 GSEP 2级真题 [202306] 找素数
GSEP 2级真题 [202306] 找素数
题目描述
小明刚刚学习了素数的概念。如果一个大于1的正整数,除了1和它自身外,不能被其他正整数整除,则这个正整数是素数。现在,小明想找到两个正整数A和B之间(包括4和B)有多少个素数。
输入格式
输入2行,第一行包含正整数A,第二行包含正整数B。约定2 < A < B < 1000。
输出格式
输出一行,包含一个整数C,表示找到C个素数。
样例 #1
样例输入 #1
2
10
样例输出 #1
4
样例 #2
样例输入 #2
98
100
样例输出 #2
0
#include <iostream>
#include <cmath>
using namespace std;
bool IsPrime(uint64_t n) {
bool r = n >= 2;
if (r) {
for (int i = 2; i * i <= n; i++) {
if (n % i == 0) {
r = false;
break;
}
}
}
return r;
}
int main() {
uint64_t a, b; cin >> a >> b;
int ct = 0;
for (uint64_t i = a; i <= b; i++) ct += IsPrime(i);
cout << ct;
}

浙公网安备 33010602011771号