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;
}


posted @ 2023-10-01 00:27  iamy  阅读(844)  评论(0)    收藏  举报