http://acm.nyist.net/JudgeOnline/problem.php?pid=270
数的分解
时间限制:
1000 ms | 内存限制:
65535 KB
难度:
1
-
描述
-
你的任务是找到一个最小的正整数Q,使Q的各位数的乘积等于N。
-
输入
-
最多450组测试数据。数据以EOF结尾。
输入一个整数N(0 ≤ N ≤ 400)。
输出
- 输出Q,如果Q不存在则输出−1。 样例输入
-
10 5
样例输出
-
25 5
-
最多450组测试数据。数据以EOF结尾。
-
#include<stdio.h> #include<string.h> #define MAX 10000 int main() { int N,n,i,j,k,sum,judge; char s[10]; while(scanf("%d",&N)!=EOF) { for(i=1,judge=0;i<MAX;i++) {//注意:题目说要一个正整数,所以从1开始 。所以输入0,输出10 sprintf(s,"%d",i); n=strlen(s); for(j=0,sum=1;j<n;j++) sum*=(s[j]-'0'); if(sum==N) { judge=1; break; } } if(judge==1) printf("%d\n",i); else printf("-1\n"); } return 0; }