一个数分解,不过是从2开始的,1 分解是 1 2分解是 2 3分解是 3 4 分解是 4 不清楚为什么 10 分解不是10 而是 2 5
题目说是找最小的Q 但是 10 不是比25 小吗? 但是好像题目就是让你找从小到大的分解。。所以这题我就按网上的解法写的,题是不难,不过题意没弄明白吧。。
可能这是个数学题,无能为力了。
#include<iostream>
#include<cstdlib>
#include<cstring>
#include<cstdio>
#include<cmath>
#include<ctime>
using namespace std;
int main()
{
int t, n, put[10];
scanf("%d", &t);
while(t--)
{
scanf("%d", &n);
if(!n)
printf("0");
else if(n == 1)
printf("1");
else
{
memset(put, 0, sizeof(put));
for(int i = 9; i >= 2; i--)
while(1)
{
if(n % i)
break;
n /= i;
++put[i];
}
if(n == 1)
for(int i = 2; i < 10; i++)
for(int j = 0; j < put[i]; j++)
printf("%d", i);
else
printf("-1");
}
printf( "\n" );
}
return 0;
}