c++【题目描述】 任意输入两个正整数m,n(1<m<n≤5000) ,依次输出m 到n 之间每个数的最大质因子(包括m 和n ;如果某个数本身是质数,则输出这个数自身)。 【输入】 一行,包含两个正整数m 和n ,其间以单个空格间隔。 【输出】 一行,每个整数的最大质因子,以逗号间隔。 【输入样例】 5 10 【输出样例】 5,3,7,2,3,5
时间: 2024-04-10 10:33:22 浏览: 152
C语言程序设计-计算并输出给定整数n的所有因子之和(不包括1与自身);注意:n的值不大于1000.c
5星 · 资源好评率100%
以下是一个解决这个问题的 C++ 代码示例:
```cpp
#include <iostream>
#include <vector>
bool isPrime(int num) {
if (num <= 1) {
return false;
}
for (int i = 2; i * i <= num; i++) {
if (num % i == 0) {
return false;
}
}
return true;
}
std::vector<int> getMaxPrimeFactors(int m, int n) {
std::vector<int> factors;
for (int i = m; i <= n; i++) {
int maxFactor = i;
for (int j = 2; j <= i / 2; j++) {
if (i % j == 0 && isPrime(j)) {
maxFactor = j;
}
}
factors.push_back(maxFactor);
}
return factors;
}
int main() {
int m, n;
std::cin >> m >> n;
std::vector<int> result = getMaxPrimeFactors(m, n);
for (int i = 0; i < result.size(); i++) {
std::cout << result[i];
if (i != result.size() - 1) {
std::cout << ",";
}
}
std::cout << std::endl;
return 0;
}
```
你可以将上述代码保存为 `.cpp` 文件,然后编译并运行它。输入两个正整数,程序将输出这两个整数之间每个数的最大质因子,以逗号间隔。对于输入样例 `5 10`,程序将输出 `5,3,7,2,3,5`。
阅读全文