1 条题解
-
0
自动搬运
来自洛谷,原作者为

残阳如血
人事已尽,天命难违搬运于
2025-08-24 21:15:24,当前版本为作者最后更新于2023-10-01 14:02:58,作者可能在搬运后再次修改,您可在原文处查看最新版自动搬运只会搬运当前题目点赞数最高的题解,您可前往洛谷题解查看更多
以下是正文
思路分析
这道题的重点就在如何判断一个数是不是质数。
方法1
枚举所有可能为 因数的数 ,如果 ,那么 就是合数;反之, 就是质数。
可以得出,这样的时间复杂度是 ,对于本题来说已经足够了,但是还有更快的方法吗?
方法2
容易发现,,其中 ,那么如果 ,那么我们无需再去查询 是否为 。根据这个思路,我们无需枚举 ,只需枚举 即可。这样的时间复杂度是 的。
但是对于可能 的情况,那么 就一定不是质数了。
代码实现
#include <iostream> bool isPrime(int x) { // 根据方法2判断是否为质数 if (x < 2) return false; for (int i = 2; i * i <= x; ++i) if (x % i == 0) return false; return true; } int main() { int A, B, ans = 0; std::cin >> A >> B; for (int i = A; i <= B; ++i) { if (isPrime(i)) ans++; } std::cout << ans; return 0; }
- 1
信息
- ID
- 9134
- 时间
- 1000ms
- 内存
- 128MiB
- 难度
- 2
- 标签
- 递交数
- 0
- 已通过
- 0
- 上传者