A-A+

数的分解

2012年08月22日 数学 暂无评论 阅读 59 次

数的分解

时间限制:1000 ms  |  内存限制:65535 KB
难度:1
描述
你的任务是找到一个最小的正整数Q,使Q的各位数的乘积等于N。

输入
最多450组测试数据。数据以EOF结尾。
输入一个整数N(0 ≤ N ≤ 400)。
输出
输出Q,如果Q不存在则输出−1。
样例输入
10
5
样例输出
25
5

常用解题思路,分解数字,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]

标签:

给我留言

Copyright © C/C++程序员之家 保留所有权利.   Theme  Ality 浙ICP备15011757号-3

用户登录