分解因子,从9开始分解,一直分解到2。0与1需要特殊处理。
代码如下:
#include<iostream>
#include<cstdlib>
#include<cstring>
#include<cstdio>
#include<cmath>
#include<ctime>
using namespace std;
int main()
{
#ifdef test
freopen("in.txt", "r", stdin);
#endif
int t, n, a[10];
scanf("%d", &t);
while(t--)
{
scanf("%d", &n);
if(!n)
printf("0");
else if(n == 1)
printf("1");
else
{
memset(a, 0, sizeof(a));
for(int i = 9; i >= 2; i--)
while(1)
{
if(n % i)
break;
n /= i;
++a[i];
}
if(n == 1)
for(int i = 2; i < 10; i++)
for(int j = 0; j < a[i]; j++)
printf("%d", i);
else
printf("-1");
}
puts("");
}
return 0;
}

本文深入探讨了从9开始分解因子直至2的过程,包括特殊情况处理,提供了详细的代码实现。
159

被折叠的 条评论
为什么被折叠?



