Your task is to find the minimal positive integer number
Q so that the product of digits of
Q is exactly equal to
N.
The input contains the single integer number
N (0 ≤
N ≤ 10
9).
Your program should print to the output the only number
Q. If such a number does not exist print −1.
input | output |
---|---|
10 | 25 |
#include <iostream> #include <algorithm> using namespace std; int ans[10000000]; int main() { int n; int sum=0; int flag=1,fl=0,f2=0; cin>>n; if(n==0) fl=1; if(n==1) f2=1; if(!fl&&!f2) { for(int j=9;j>1;j--) { if(n%j==0) { ans[sum++]=j; n=n/j; j=10; if(n==1) break; } if(n%j!=0&&j==2) { flag=0; break; } } } if(!flag) cout<<-1<<endl; else { if(fl) cout<<10<<endl; if(f2) cout<<1<<endl; if(!fl && !f2) { sort(ans,ans+sum); for(int i=0;i<sum;i++) cout<<ans[i]; cout<<endl; } } return 0; }