95 WA 求调
查看原帖
95 WA 求调
596333
Finality_1207楼主2024/11/27 21:32

WA on #20 QWQ

#include<bits/stdc++.h>
using namespace std;
long long n,k,ans=1;
map<long long,long long> mp;
long long pd(long long x,int y){
	long long s=1;
	for(int i=1;i<=y;i++){
		if(s>n*1.0/x) return -1;
		s*=x;
	}
	return s;
}
bool pd2(long long x){
	long long y=sqrt(x);
	return (y*y!=x)||(k>2);
}
void solve(int x){
	for(int i=2;;i++){
		long long op=pd(i,x);
		if(op==-1) break;
		if(!mp[op]&&pd2(op)) ++ans,mp[op]=1;
	}
}
int main(){
//	freopen(".in","r",stdin);
//	freopen(".out","w",stdout);
	ios::sync_with_stdio(0);
	cin.tie(0);cout.tie(0);
	cin>>n>>k;
	if(k==1){
		cout<<n;
		return 0;
	}
	for(int i=k+(k==2);i<=65;i++) solve(i);
	cout<<ans+(k==2)*((int)sqrt(n)-1);
	return 0;
}
2024/11/27 21:32
加载中...