数的分解
时间限制:
1000 ms | 内存限制:
65535 KB
难度:
1
-
描述
-
你的任务是找到一个最小的正整数Q,使Q的各位数的乘积等于N。
-
输入
-
最多450组测试数据。数据以EOF结尾。
输入一个整数N(0 ≤ N ≤ 400)。
输出
- 输出Q,如果Q不存在则输出−1。 样例输入
-
10 5
样例输出
-
25 5
来源
- ural 上传者
#include<stdio.h>
int main()
{
int n=400,i;
while(~scanf("%d",&n))
{
for(i=1;;i++)
{
int k=1;
int b=i;
while(b)
{
k*=(b%10);
b/=10;
}
if(k==n)
{
printf("%d\n",i);
break;
}
if(i>3555)//直接遍历,当到3555时,n<400,该出现的数都出现了
{
printf("-1\n");
break;
}
}
}
return 0;
}
-
最多450组测试数据。数据以EOF结尾。