65pts求调
查看原帖
65pts求调
85574
洛谷珂学家楼主2023/3/9 21:41

用对数处理进行的暴力求解,但似乎因为精度问题出现错解,有什么解决方案吗

#include<bits/stdc++.h>
using namespace std; 
int main()
{
	long long n;
	int k,ans=0;
	cin>>n>>k;
	ans+=pow(2,(log2(n)/k));
	for(int i=k+1;i<=log2(n);i++) 
	for(int j=2;j<=pow(10,(log10(n)/i));j++)
	{
		bool pd=0;
		for(int z=k;z<i;z++)			
  		{
			float u=pow(10,log10(pow(j,i))/z);
			if(u==(int)u)pd=1;
		}
			if(!pd)ans++;
	}
		cout<<ans;
}
2023/3/9 21:41
加载中...