从9到2对原来的数进行试除,除完之后若不等于1,则无解,否则将之前的试除出来的因子从小到大输出。特殊情况:0的时候为10,1的时候为1。
#include <bits/stdc++.h>
using namespace std;
int a[100];
int m;
int main() {
int n; scanf("%d", &n);
if (n == 0) {
printf("10\n");
} else if (n == 1) {
printf("1\n");
} else {
m = 0;
for (int i = 9; i > 1; i--) {
while (n % i == 0) {
a[m++] = i;
n /= i;
}
}
if (n != 1) {
printf("-1\n");
} else {
sort(a, a + m);
for (int i = 0; i < m; i++) {
printf("%d", a[i]);
}
printf("\n");
}
}
return 0;
}