用c++写将一个数用素数展开的代码,并注释
时间: 2024-02-19 22:57:14 浏览: 67
C++题目数素数代码+详细注释
5星 · 资源好评率100%
以下是用C++写将一个数用素数展开的代码,并注释:
```
#include <iostream>
#include <vector>
using namespace std;
// 判断一个数是否为素数
bool isPrime(int n) {
if (n < 2) return false;
for (int i = 2; i <= sqrt(n); i++) {
if (n % i == 0) return false;
}
return true;
}
// 将一个数用素数展开
vector<int> primeFactors(int n) {
vector<int> factors;
for (int i = 2; i <= n; i++) {
if (!isPrime(i)) continue; // 如果i不是素数,跳过本次循环
while (n % i == 0) { // 如果n能被i整除
factors.push_back(i); // 将i加入factors
n /= i; // n除以i
}
}
return factors;
}
int main() {
int n;
cout << "请输入一个正整数:" << endl;
cin >> n;
vector<int> factors = primeFactors(n);
cout << n << "的素数展开式为:";
for (int i = 0; i < factors.size(); i++) {
cout << factors[i];
if (i < factors.size() - 1) cout << " * ";
}
cout << endl;
return 0;
}
```
首先,我们定义了一个函数`isPrime`,用来判断一个数是否为素数。它的实现是通过从2到该数的平方根,逐个判断是否能被整除。
接着,我们定义了另一个函数`primeFactors`,用来将一个数用素数展开。它的实现是从2到该数,逐个判断是否为素数,如果是素数就尝试将该数除以它,直到无法整除为止,然后继续下一个素数。
最后,在`main`函数中,我们从用户输入一个正整数,然后调用`primeFactors`函数得到素数展开式。然后我们输出这个数和它的素数展开式,中间用`*`符号连接。
阅读全文