酷代码 AI
菜单
服务商

C++ 实现:输入数判断是否为质数,避开常见开发陷阱!

以下是实现该功能的 C++ 代码: ```cpp #include <iostream> #include <cmath> int main() { // 由于 n 的范围是 n <= 10^11,所以使用 long long 类型来存储输入的整数 long long n; std::cin >> n; // 质数的定义要求大于 1 if (n <= 1) { std::cout << 0 << std::endl; return 0; } // 从 2 开始到根号 n 进行遍历,判断是否存在能整除 n 的数 for (long long i = 2; i <= std::sqrt(n); ++i) { if (n % i == 0) { // 如果存在能整除 n 的数,说明 n 不是质数,输出 0 std::cout << 0 << std::endl; return 0; } } // 如果没有找到能整除 n 的数,说明 n 是质数,输出 1 std::cout << 1 << std::endl; return 0; } ``` 我在以往的开发过程中,碰到过以下几点需要格外小心处理的地方: 1. 要注意质数的定义,1 不是质数,所以在判断时需要对小于等于 1 的数进行特殊处理。 2. 由于输入的数范围达到 10^11,需要使用 `long long` 来避免整数溢出。 3. 在进行循环判断时,遍历范围可以优化到根号 n,这样能减少不必要的计算,提高效率,但要注意使用 `std::sqrt()` 可能会因为浮点数误差带来的一些问题。 ######[AI写代码神器 | 391点数解答 | 2026-02-05 12:42:13]

相关提问
本站限时免费提问中
实用工具查看更多
Linux在线手册 [开发类]
Jquery在线手册 [开发类]
今日油价 [生活类]
图片互转base64 [开发类]
时间转换器 [开发类]