描述
输入一个整数 N,按照从大到小的顺序,输出其所有因子相乘的情况。
输入描述
输入一行一个整数 N。
输出描述
所有因子相乘的情况,每行一个序列。
样例输入 1
20
样例输出 1
20=20*1 20=10*2*1 20=5*4*1 20=5*2*2*1 20=4*5*1 20=2*10*1 20=2*5*2*1 20=2*2*5*1
提示
数据范围与提示
2≤N<100
#include<bits/stdc++.h>
using namespace std;
int n,a[101],k=1;
void dfs(int x){ //当前被分解的数字
if(x==1){ //找到了分解方案
a[k]=1;
cout<<n<<"=";
for(int i=1;i<k;i++){
cout<<a[i]<<"*";
}
cout<<a[k]<<endl;
return;
}
for(int i=x;i>1;i--){
if(x%i==0){
a[k]=i;
k++;
dfs(x/i);
k--;
a[k]=0;
}
}
}
int main(){
cin>>n;
dfs(n);
return 0;
}