比赛 |
20250520模拟测试 |
评测结果 |
AAWAWAWAWAWAWAWAWAAA |
题目名称 |
幂次 |
最终得分 |
60 |
用户昵称 |
zjzhe |
运行时间 |
2.029 s |
代码语言 |
C++ |
内存使用 |
14.09 MiB |
提交时间 |
2025-05-20 15:26:36 |
显示代码纯文本
#include<bits/stdc++.h>
#include <cmath>
#define int long long
using namespace std;
const int N=1e5+5;
int n,k,ans,fac[N];
__int128 ksm(int a,int b){
__int128 res=1;
for(;b;b>>=1,a=a*a)if(b&1)res=res*a;
return res;
}
#undef int
int main(){
#define int long long
freopen("power.in","r",stdin);
freopen("power.out","w",stdout);
cin>>n>>k;
if(k==1)return cout<<n,0;
if(k==2){
set<int>s,s2;
for(int i=3;i<=100;i++){
for(int j=1;j<=n;j++){
__int128 t=ksm(j,i);
if(t>n||t<=0)break;
if((__int128)sqrtl(t)*(__int128)sqrtl(t)!=t)s.insert(t);
}
}
cout<<s.size()+(int)sqrtl(n);
return 0;
}
set<int>s;
for(int i=k;i<=100;i++){
for(int j=1;j<=n;j++){
__int128 t=ksm(j,i);
if(t>n||t<=0)break;
s.insert(t);
}
}
cout<<s.size();
return 0;
}