Description
Drazil is playing a math game with Varda.
Let's define for positive integer x as a product of factorials of its digits. For example, .
First, they choose a decimal number a consisting of n digits that contains at least one digit larger than 1. This number may possibly start with leading zeroes. Then they should find maximum positive number x satisfying following two conditions:
1. x doesn't contain neither digit 0 nor digit 1.
2. = .
Help friends find such number.
Input
The first line contains an integer n (1 ≤ n ≤ 15) — the number of digits in a.
The second line contains n digits of a. There is at least one digit in a that is larger than 1. Number a may possibly contain leading zeroes.
Output
Output a maximum possible integer satisfying the conditions above. There should be no zeroes and ones in this number decimal representation.
Sample Input
4 1234
33222
3 555
555
Hint
In the first case,
#include <stdio.h>
#include <string.h>
int main()
{
int a[100]={0};
char x[100];
int n,i,j,temp;
scanf("%d",&n);
scanf("%s",x);
for(i=0; i<n; i++)
{
temp=x[i]-'0';
switch(temp)
{case 2:
a[2]++;break;
case 3:
a[3]++;break;
case 4:
a[2]+=2,a[3]++;break;
case 5:
a[5]++;break;
case 6:
a[5]++,a[3]++;break;
case 7:
a[7]++;break;
case 8:
a[7]++,a[2]+=3;break;
case 9:
a[7]++,a[3]+=2,a[2]++;break;}
}
for(i=9; i>=2; i--)
for(j=1; j<=a[i]; j++)
printf("%d",i);
return 0;
}
找到固定数字位置,看看有几个,用for循环输出。