1 #include <stdio.h> 2 #include <string.h> 3 #include <math.h> 4 #include <algorithm> 5 #include <iostream> 6 #include <ctype.h> 7 #include <iomanip> 8 #include <queue> 9 #include <stdlib.h> 10 using namespace std; 11 12 int a[10010],b[10010]; 13 int i,j,k,Max; 14 15 void DFS(int n,int i,int k) 16 { 17 if(n%i==0 && n!=1){ 18 b[k]=i; 19 DFS(n/i,i+1,k+1); 20 } 21 if(Max < k){ 22 Max=k; 23 for(j=0;j < Max;j++){ 24 a[j]=b[j]; 25 } 26 } 27 } 28 29 int main() 30 { 31 int n; 32 while(~scanf("%d",&n)){ 33 Max=0; 34 for(i=2;i*i<=n;i++){ 35 DFS(n,i,0); 36 } 37 if(Max==0){ 38 Max=1; 39 a[0]=n; 40 } 41 printf("%d\n",Max); 42 printf("%d",a[0]); 43 for(i=1;i < Max;i++) 44 printf("*%d",a[i]); 45 printf("\n"); 46 } 47 }
原文:http://www.cnblogs.com/wangmengmeng/p/5007664.html