对整数n(n>1)进行质因数分解并逆序输出。用C++形式
时间: 2024-10-22 15:29:06 浏览: 11
信息学奥赛一本通算法(C++版)基础算法_高精度计算.pdf
在C++中,你可以编写一个函数来对给定的整数进行质因数分解,并将结果逆序输出。这里是一个简单的示例,它首先找到所有质因子,然后存储在一个vector中,最后将vector的内容逆序:
```cpp
#include <iostream>
#include <vector>
#include <algorithm>
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> primeFactorization(int n) {
std::vector<int> factors;
for (int i = 2; i * i <= n; i++) {
while (n % i == 0 && isPrime(i)) {
factors.push_back(i);
n /= i;
}
}
// 如果n是质数,直接添加到factors
if (isPrime(n))
factors.push_back(n);
// 逆序输出
std::reverse(factors.begin(), factors.end());
return factors;
}
void printFactorsInReverse(const std::vector<int>& factors) {
for (int factor : factors)
std::cout << factor << " ";
std::cout << "\n";
}
int main() {
int n;
std::cout << "请输入一个大于1的整数: ";
std::cin >> n;
std::vector<int> factors = primeFactorization(n);
printFactorsInReverse(factors);
return 0;
}
```
阅读全文