Codeforces 1475 A. Odd Divisor
题目大意:
给你一个数
让你判断这个数有没有大于 1 的奇数因子
思路分析:
首先,如果这个数是奇数的话,一定有大于 1 的奇数因子,即他本身;如果这个数是偶数的话,反正想,如果偶数没有奇数因子,一直除 2 肯定最后结果是 1 并且整除后的结果依然是偶数。
AC代码:
#include <bits/stdc++.h>
#define ll long long
using namespace std;
ll n;
int main() {
int t;
cin >> t;
while (t--) {
cin >> n;
if (n & 1)
cout << "YES" << endl;
else {
// 注意一下运算的优先级,貌似括号不能省的
while (((n & 1) == 0) && n != 1) {
n/=2;
}
if(n == 1)
cout << "NO" << endl;
else
cout << "YES" << endl;
}
}
return 0;
}