http://www.elijahqi.win/archives/1469
Problem Description
You are given a positive integer n, please count how many positive integers k satisfy kk≤n .
Input
There are no more than 50 test cases.
Each case only contains a positivse integer n in a line.
1≤n≤1018
Output
For each test case, output an integer indicates the number of positive integers k satisfy kk≤n in a line.
Sample Input
1 4
Sample Output
1 2
Source
2017ACM/ICPC广西邀请赛-重现赛(感谢广西大学)
来青岛参加acm了 觉得自己好弱 啊 赶紧刷几个水题压压惊的
我提前打了张表 发现在16^16的时候正好溢出long long变成了0 所以我就提前对前15打一张表去做就好了
#include <cstdio>
long long n;long long st[20];
int main(){
// freopen("a.in","r",stdin);
for (int i=1;i<=15;++i){
st[i]=i;
for (int j=2;j<=i;++j) st[i]*=i;
}
while (~scanf("%lld",&n)){
int ans=0;
for (int i=1;i<=15;++i) if (st[i]<=n) ans++;
printf("%d\n",ans);
}
return 0;
}