共两个函数和一个主函数。第一个判断传入参数是否为质数,第二个有两个参数,需要分解的数和保存分解出的质因数的向量。代码浅显易懂,不做赘述。
#include <iostream>
#include <cstdlib>
#include <vector>
using namespace std;
bool isPrimeNum(int n)
{
for (int i = 2; i != n; ++i)
{
for (int j = 2; j <= i; ++j)
{
if (n == i*j)return false;
}
}
return true;
}
void deposition(int n, vector<int> &vec)
{
if (n == 1)
{
vec.push_back(1);
return;
}
if (isPrimeNum(n))
{
vec.push_back(n);
return;
}
int i;
for (i = 2; i <= n / 2; ++i)
{
if (n%i == 0 && isPrimeNum(i))
{
vec.push_back(i);
break;
}
}
deposition(n / i, vec);
return;
}
int main()
{
int n;
vector<int> vec;
cout << "please input the number:" << endl;
cin >> n;
cout << "the number is prime number:" << ((isPrimeNum(n))?"true":