编写一个程序,先读入一个正整数 N,对其做质因数分解。C++
时间: 2024-10-24 18:14:30 浏览: 40
编写一个C++程序来实现质因数分解,首先需要用户输入一个正整数N,然后找出所有质因数并打印出来。以下是简单的步骤:
```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> primeFactors(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还有剩余,说明最后一个因子可能是质数
if (n > 1 && isPrime(n))
factors.push_back(n);
return factors;
}
int main() {
int N;
std::cout << "请输入一个正整数: ";
std::cin >> N;
std::vector<int> factorList = primeFactors(N);
std::cout << "该数字的质因数分解结果是: ";
for (int factor : factorList) {
std::cout << factor << " ";
}
return 0;
}
```
在这个程序中,我们首先定义了`isPrime`函数用于判断是否为质数,接着`primeFactors`函数通过循环寻找并记录每个质因数。在`main`函数里,获取用户的输入并调用质因数分解函数,最后打印出结果。
阅读全文