You are given a positive integer n, please count how many positive integers k satisfy kk≤nkk≤n.
Input
There are no more than 50 test cases.
Each case only contains a positivse integer n in a line.
1≤n≤10181≤n≤1018
Output
For each test case, output an integer indicates the number of positive integers k satisfy kk≤nkk≤n in a line.
Sample Input
1 4
Sample Output
1 2
给你一个n,问你有多少个k,使得k的k次方小于等于n 注意用longlong
#include<bits/stdc++.h>
using namespace std;
typedef long long ll;
const int maxn=1e5+10;ll n,ans;
ll fpow(ll a,ll b){ll res=1;while(b){if(b&1)res*=a;a*=a;b>>=1;}return res;}
int main()
{
while(cin>>n)
{
ans=0;
for(ll i=1;i<15;i++)if(1LL*fpow(i,i)<=n)ans++;cout<<ans<<endl;
}
return 0;
}
本文介绍了一种算法,用于解决给定正整数n,求满足k^k<=n的正整数k的数量的问题。算法通过遍历可能的k值并使用快速幂运算检查每个k是否符合条件。输入为不超过50组的测试用例,每组包含一个正整数n,输出为满足条件的k的数量。
1268

被折叠的 条评论
为什么被折叠?



