单调
题目描述
n=∑ki=0ai⋅bi,b≥2,如果i>0时,ai>ai−1,那么我们称这个数n是在b进制下是单调的。比如6,在3进制下为20(3),所以6在3进制下是单调的。现在已知n,求最小的基b,使得n是单调的。
输入
第一行是一个整数T(1≤T≤10000),表示样例的个数。 每行一个整数n,2≤n≤109。
输出
依次每行输出一个样例的结果。
样例输入
2 2 1000000000
样例输出
2 32
AC代码如下:
#include<stdio.h>
int arr[100];
int main()
{
int T,i,j,k,m,n,flag;
scanf("%d",&T);
while(T--)
{
scanf("%d",&n);
for(i=2; ;i++)
{
m=n;flag=0;
for(j=0;m>0;j++)
{
arr[j]=m%i;
m/=i;
}
for(k=j-1;k>0;k--)
{
if(arr[k]<arr[k-1])
{
flag=1;
break;
}
}
if(!flag)
{
printf("%d\n",i);
break;
}
}
}
return 0;
}