Codeforces Round 697 (Div. 3) A. Odd Divisor

发布时间 2023-10-12 15:30:54作者: zsxuan

给一个正整数 \(n\) ,判断 \(n\) 是否存在一个 \(> 1\) 的奇数因子。

只要 \(n\) 的唯一分解下存在除 \(2\) 以外的质因子,则 \(n\) 存在 \(>1\) 的奇数因子。

于是 \(n \neq lowbit(n)\)\(n\) 存在奇数因子。(应用了 \(2^k = lowbit(2^k)\) 的性质)

view
#include <bits/stdc++.h>
void solve(){
	long long n; std::cin >> n;
	std::cout << (n != (n & (-n)) ? "YES" : "NO") << '\n';
}
int main() {
	int _ = 1; std::cin >> _;
	while (_--) {solve();}
	return 0;
}