题解
2026-08-30 22:43:38
发布于:浙江
31阅读
0回复
0点赞
适合新手
#include <bits/stdc++.h>
using namespace std;
int main() {
int n, m, sum = 0;
cin >> n >> m;
// 优化:确保从2开始判断,因为1及以下的数不是素数
if (n < 2) n = 2;
for (int i = n; i <= m; i++) {
bool flag = true; // 假设当前数是素数
// 只需要判断到 sqrt(i),即 j*j <= i
for (int j = 2; j * j <= i; j++) {
if (i % j == 0) {
flag = false; // 发现因子,说明不是素数
break; // 立即退出循环,提高效率
}
}
if (flag) {
sum++;
}
}
cout << sum << endl;
return 0;
}
这里空空如也



有帮助,赞一个