题意
输入一个n ( 0 <= n <= ) 求有多少个k 使得
思路
这个题蜜汁爆llu
用计算器试一下就知道当k = 16时, 已经超过
所以最多是15 故用最朴素的循环求 就行
AC代码
#include <iostream>
#include <algorithm>
#include <cstdio>
#include <cstring>
using namespace std;
typedef unsigned long long ll;
ll n, i, cnt;
bool judge( ll a ){
ll ans = 1;
for( ll i = 1; i <= a; i++ ){
ans *= a;
if( ans > n ) return 0;
}
return ans <= n;
}
int main()
{
while( ~scanf("%llu",&n) ){
cnt = 0;
for( i = 1; ; i++ )
if( judge(i) )
cnt++;
else break;
printf("%llu
",cnt);
}
return 0;
}