c++从键盘任意输入两个整数m和n,编程判断m和n是否是亲密数。若是亲密数,则输出“Yes!”,否则输出“No!” 程序运行示例1 Input m, n: 220,284↙ Yes! 程序运行示例2 Input m, n: 224,280↙ No! 输入格式: 输入提示信息:"Input m, n:\n" 输入格式: "%d,%d" 输出格式: 输出提示信息: "Yes!\n" "No!\n"
时间: 2024-03-18 13:41:19 浏览: 17
好的,下面是一个简单的 C++ 代码实现:
```c++
#include <iostream>
#include <vector>
using namespace std;
vector<int> get_divisors(int num) {
/*
* 获取一个数的所有真因数
*/
vector<int> divisors = {1};
for (int i = 2; i < num; i++) {
if (num % i == 0) {
divisors.push_back(i);
}
}
return divisors;
}
int main() {
int m, n;
cout << "Input m, n:\n";
scanf("%d,%d", &m, &n);
vector<int> divisors_m = get_divisors(m);
vector<int> divisors_n = get_divisors(n);
if (accumulate(divisors_m.begin(), divisors_m.end(), 0) == n && accumulate(divisors_n.begin(), divisors_n.end(), 0) == m) {
cout << "Yes!" << endl;
} else {
cout << "No!" << endl;
}
return 0;
}
```
这里同样定义了一个 `get_divisors` 函数,用于获取一个数的所有真因数。然后从键盘输入两个整数 `m` 和 `n`,并分别获取它们的所有真因数。如果 `m` 的所有真因数之和等于 `n`,且 `n` 的所有真因数之和等于 `m`,则说明这两个数是亲密数,输出 "Yes!",否则输出 "No!"。
注意:在这个 C++ 版本的实现中,我使用了 `scanf` 函数来读取输入。如果输入的格式不正确,程序会出错。
相关推荐
![docx](https://img-home.csdnimg.cn/images/20210720083331.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)