Given an integer N, write a program to find the minimal positive integer K such that the product of the digits of K is exactly N.
Input
There are several tests. Each test consists of an integer N(0 <= N <= 10^9) on a single line. Input is terminated by end of file.
Output
For each integer in the input, print in a single line the corresponding number K. If such a K doesn't exist, print -1 instead. No other characters are allowed in the output.
Sample Input
15Sample Output
35
#define _CRT_SECURE_NO_WARNINGS
#include<stdio.h>
#include<string.h>
#include<stdlib.h>
int buf[10] = { 0 };
void solve(int n)
{
if ( 0 == n || 1 == n)
{
if (0 == n)
printf("%d\n", 10);
else
printf("%d\n", 1);
return;
}
int i = 9, j;
memset(buf, 0, sizeof(buf));
while (i > 1)
{
if (0 == n % i)
{
buf[i]++;
n /= i;
}
else
i--;
}
if (n != 1)
{
printf("-1\n");
return;
}
for (i = 2; i < 10; i++)
{
if (buf[i])
{
for (j = 0; j < buf[i]; j++)
printf("%d", i);
}
}
printf("\n");
}
int main()
{
int n;
while (EOF != scanf("%d", &n))
solve(n);
return 0;
}