题目描述:
输入一个正整数,将其分解质因数,对应每组数据以:"a = a1 * a2 * a3 …"的形式输出因式分解后的结果。
例如:
解题思路:
个人觉得这个用递归更加简单,将分解质因数的过程递归,分解到a为素数的时候结束递归
代码实现
#include<iostream>
#include<math.h>
using namespace std;
bool issushu(int a)//判断是否是素数
{
if (a == 1)
return false;
if (a == 2 || a == 3)
return true;
for (int i = 2; i <= sqrt(a); i++)
{
if (a%i == 0)
return false;
}
return true;
}
void fenjieyinshi(int a)
{
if (issushu(a))//判断是否是素数,true j结束递归,并输出a,false 继续递归
cout << a << endl;
for (int i = 2; i <= sqrt(a); i++)//循环找a的公约数,
{
if (a%i == 0)
{
cout << i << " * ";
a /= i;
fenjieyinshi(a);
break;
}
}
}
int main()
{
int a;
while (cin >> a)
{
cout << a << " = ";
fenjieyinshi(a);
}
system("pause");
return 0;
}
运行结果