codeforces1475A

根据算术基本定理推出(因为唯一一个偶素数是二):如果一个数n是2的幂,则该数无奇数因子。

可用n&(n-1)来判断,因为2的幂只在二进制的某一位有值,而(n-1)在除了该位的其他位有值

所以如果该数是2的幂,n&(n-1)=0

#include<iostream>
#include<cmath>
#define int long long
using namespace std;
signed main(){
	int t;
	cin>>t;
	while(t--){
		int n;
		cin>>n;
		if(n&(n-1))
			cout<<"YES"<<endl;
		else
			cout<<"NO"<<endl;
	}
	return 0;
}
posted @ 2022-04-11 00:22  zzq12138  阅读(30)  评论(0)    收藏  举报