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;
}
本文介绍了一种算法,用于寻找最小的正整数Q,其数字之积等于给定的整数N。输入为一个整数N,输出是最小的正整数Q,若不存在则输出-1。
487

被折叠的 条评论
为什么被折叠?



