#include<bits/stdc++.h>
using namespace std;
#define N 1995000000
long long n,k;
long long sun;
bool a[N];
int main(){
cin>>n>>k;
long long sum=powl(n,1.0/k);
for(int i=sum;i>1;i--){
long long j=k;
for(j;pow(i,j)<=n;j++){
long long fcjsb=powl(i,j);
long long sim=sqrtl(fcjsb)*100 ;
if(fcjsb<=n&&a[sim]==0){
a[sim]=1;
sun++;
}
}
}
cout<<sun+1;
}
像这种开k次方之后二重循环枚举a的b次方的去重该怎么去
bool开不到那么大