75ptsTLE求调
查看原帖
75ptsTLE求调
421636
yaodehao123楼主2023/7/26 21:15

75分,剩余的TLE,不会容斥(悲 求大佬调

#include<iostream>
#include<cmath>
#include<map>
using namespace std;
unsigned long long n,k,ans;
map<unsigned long long ,bool>mp;
int main(){
	scanf("%lld %lld",&n,&k);
	int maxn=pow(double(n),double(1.0/k*1.0));
	for(int i=2;i<=maxn;++i){
		if(mp[i]){
			continue;
		}
		unsigned long long m=log(n)/log(i)*1.0,num=i;
		if(m-k+1<=0)cout<<"?";
		ans+=(m-k+1>0?m-k+1:0);
		//cout<<i<<" "<<m<<endl;
		for(int j=1;j<=m;++j){
			mp[num]=true;
			num*=i;
		}
	}
	printf("%lld",ans+1);
	return 0;
}
2023/7/26 21:15
加载中...