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.
Examples
Input4Output
1234
33222Input
3Output
555
555
Note
In the first case,
题解:此题需要知道0~9的阶乘,"0","1","2","3","322","5","35","7","2227","2337"//分别为0~9对应的阶乘相乘形式,然后笨方法,代码如下
#include<cstdio> #include<iostream> using namespace std; //"0","1","2","3","322","5","35","7","2227","2337"//分别为0~9对应的阶乘相乘形式 int main() { int n; char s[20]; int a[100]={0}; cin>>n; cin>>s; for(int i=0;i<n;i++) { int t=s[i]-'0'; switch(t) { case 1: a[1]++;break; 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[3]++;a[5]++;break; case 7: a[7]++;break; case 8: a[2]+=3;a[7]++;break; case 9: a[2]++;a[3]+=2;a[7]++;break; } } for(int i=9;i>=2;i--) for(int j=1;j<=a[i];j++) cout<<i; cout<<endl; return 0; }