80分,求调
查看原帖
80分,求调
1375065
linkai20111030楼主2025/7/28 22:01

80分,求大佬帮调,回复壶关

#include<bits/stdc++.h>
using namespace std; 
typedef long long ll;
ll t;
inline bool ac(ll x){
	if(x<=1)
		return 0;
	if(x==2)
		return 1;
	if(x%2==0)
		return 0;
	for(ll i=3;i*i<=x;i+=2){
		if(x%i==0)
			return 0;
	}
	return 1;
}
inline ll ab(ll x){
	for(int i=1;i>=0;i++){
		if(x==0)
			return i-1;
		if(pow(2,i-1)>x)
			return -1;
		if(!ac(x))
			x-=pow(2,i-1);
		else
			return i;
	}
}
signed main(){
	cin>>t;
	while(t--){
		ll x;
		cin>>x;
		cout<<ab(x)<<endl;
	}
}
2025/7/28 22:01
加载中...