酷代码 AI
菜单
服务商
DeepSeek字节豆包讯飞星火
更多选项

C++实现小核桃开门条件判断

### 🔍问题分析 要判断能否打开门,需要满足两个条件:一是两个砝码上的数字都是质数,二是这两个数字的和等于给定的 `n`。 ### 💻代码实现 ```cpp #include <iostream> #include <cmath> // 判断一个数是否为质数 bool isPrime(int num) { if (num < 2) return false; for (int i = 2; i <= std::sqrt(num); ++i) { if (num % i == 0) return false; } return true; } int main() { int n, x, y; std::cin >> n >> x >> y; // 判断是否满足开门条件 if (isPrime(x) && isPrime(y) && x + y == n) { std::cout << "yes" << std::endl; } else { std::cout << "no" << std::endl; } return 0; } ``` ### 📝代码解释 1. **`isPrime` 函数**:该函数用于判断一个数是否为质数。如果一个数小于 2,则它不是质数;否则,从 2 到该数的平方根进行遍历,如果能被其中任何一个数整除,则不是质数。 2. **`main` 函数**:首先读取输入的 `n`、`x` 和 `y`,然后调用 `isPrime` 函数判断 `x` 和 `y` 是否为质数,同时检查它们的和是否等于 `n`。如果满足条件,则输出 "yes",否则输出 "no"。 ### ⚙️复杂度分析 - **时间复杂度**:判断一个数是否为质数的时间复杂度为 $O(\sqrt{num})$,因此总的时间复杂度为 $O(\sqrt{x} + \sqrt{y})$。 - **空间复杂度**:只使用了常数级的额外空间,因此空间复杂度为 $O(1)$。 ### 💡开发建议 - **代码复用**:将判断质数的逻辑封装成函数,提高代码的复用性。 - **边界条件处理**:在判断质数时,要注意处理小于 2 的情况。 - **输入验证**:可以添加输入验证,确保输入的数字符合要求。 ######[AI写代码神器 | 533点数解答 | 2026-05-09 19:48:28]

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