题目描述:
所谓因子分解,就是把给定的正整数a,分解成若干个素数的乘积,即 a = a1 × a2 × a3 × ... × an,并且 1 < a1 ≤ a2 ≤ a3 ≤ ... ≤ an。 先给出一个整数a,请输出分解后的因子。
输入描述:
输入一个正整数a(2≤ a ≤1000000)。
输出描述:
对应每组数据,以“a = a1 * a2 * a3...”的形式输出因式分解后的结果。
程序代码:
#include<bits/stdc++.h>
using namespace std;
int a[100];
void dfs(int x,int step){
if(x == 1){
for(int j=1;j<step;j++){
cout<<a[j]<<" ";
}
cout<<endl;
}
for(int i=a[step-1];i<=x;i++){
if(x%i == 0){
a[step++] = i;
dfs(x/i,step);
step -- ;
}
}
}
int main(){
int n;
a[0] = 2;
cin>>n;
dfs(n,1);
}