数的分解
数的分解
时间限制:1000 ms | 内存限制:65535 KB
难度:1
- 描述
- 你的任务是找到一个最小的正整数Q,使Q的各位数的乘积等于N。
- 输入
- 最多450组测试数据。数据以EOF结尾。
输入一个整数N(0 ≤ N ≤ 400)。 - 输出
- 输出Q,如果Q不存在则输出−1。
- 样例输入
-
12105
- 样例输出
-
12255
常用解题思路,分解数字,9到2,分解,sort排序,输出即可.
最普通的解法,节选自acm_oj最优程序
[cpp]
#include<iostream>
#include<cstdio>
using namespace std;
int main()
{
int n;
while(scanf(“%d”,&n)!=EOF)
{
for(int i=1;;i++)
{
int k=1;
int s=i;
while(s)
{
k*=(s%10);
s/=10;
}
if(k==n)
{cout<<i<<endl;break;}
if(i>5000)
{cout<<“-1″<<endl;break;}
}
}
return 0;
}
[/cpp]