http://acm.hit.edu.cn/hoj/problem/view?id=1365
给一个整数n
输出最小的整数k使得k的每一位的乘积等于n
n=0和n=1单独处理
#include <stdio.h>
int main()
{
int n, i, j, p;
int factor[10] = {0};
while (scanf("%d", &n) != EOF)
{
if (n == 0)
{
printf("%d\n", 10);
continue;
}
else if (n == 1)
{
printf("%d\n", 1);
continue;
}
p = n;
for (i = 9; i >= 2; )
{
if(p % i == 0)
{
factor[i]++;
p /= i;
}
else i--;
}
if (p != 1)
{
printf("%d\n", -1);
continue;
}
for (i = 2; i <= 9; i++)
for (j = 1; j <= factor[i]; j++)
printf("%d", i);
printf("\n");
}
return 0;
}