一個數分解,不過是從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;
}