小核桃挑选了两个砝码,如果它们上面的数字都是质数,并且数字加起来的和是n,就可以打开门。现在告诉你这两个砝码上的数字,请你用函数判断他们能否打开门。C++
时间: 2024-09-08 13:02:28 浏览: 27
在C++中,我们可以编写一个函数来判断两个砝码上的数字是否都是质数,并且它们的和是否等于n。质数是只能被1和它本身整除的自然数。我们可以首先写一个辅助函数来判断一个数是否是质数,然后编写主函数来判断两个砝码的数字是否符合小核桃的要求。
下面是C++代码的一个例子:
```cpp
#include <iostream>
// 辅助函数:判断一个数是否是质数
bool isPrime(int num) {
if (num <= 1) return false; // 小于等于1的数不是质数
for (int i = 2; i * i <= num; i++) {
if (num % i == 0) return false; // 如果能被除了1和它本身之外的数整除,则不是质数
}
return true;
}
// 主函数:判断两个砝码的数字是否能打开门
bool canOpenDoor(int weight1, int weight2, int n) {
// 首先判断两个数是否都是质数
if (isPrime(weight1) && isPrime(weight2)) {
// 然后判断它们的和是否等于n
if (weight1 + weight2 == n) {
return true; // 如果都是质数且和为n,返回true
}
}
return false; // 否则返回false
}
int main() {
int weight1, weight2, n;
std::cout << "请输入第一个砝码的重量:";
std::cin >> weight1;
std::cout << "请输入第二个砝码的重量:";
std::cin >> weight2;
std::cout << "请输入门的数字和:";
std::cin >> n;
// 判断并输出结果
if (canOpenDoor(weight1, weight2, n)) {
std::cout << "可以打开门!" << std::endl;
} else {
std::cout << "无法打开门。" << std::endl;
}
return 0;
}
```
在这段代码中,`isPrime` 函数用于检查一个数是否是质数。`canOpenDoor` 函数接收三个参数:两个砝码的数字和门的数字和n。它首先使用`isPrime`函数检查两个砝码的数字是否都是质数,然后检查它们的和是否等于n。