993
思路只要想通就很简单了,实际上就是把一个数因式分解为若干个2-9的数的成绩,直接枚举找就行
//============================================================================ // Name : 993.cpp // Author : // Version : // Copyright : Your copyright notice // Description : Hello World in C++, Ansi-style //============================================================================ #include <iostream> #include <cstdio> #include <algorithm> #include <cstring> using namespace std; int ans[50]; int n, num, tag, N; int main() { freopen("a.txt", "r", stdin); scanf("%d", &N); while(N--){ memset(ans, 0, sizeof(ans)); scanf("%d", &n); if(n == 1){ printf("1\n"); continue; } num = 0; tag = 0; while(n > 1){ tag = 0; for(int i = 9;i > 1;i--){ if(n%i == 0){ ans[num++] = i; n /= i; tag = 1; break; } } if(tag == 0){ break; } } sort(ans, ans+num); if(tag == 0){ printf("-1\n"); } else{ for(int i = 0;i < num;i++){ printf("%d", ans[i]); } printf("\n"); } } return 0; }