NSOqwq

题解 CF1475A 【Odd Divisor】

Codeforces Round #697 (Div.3) A 题解

题目大意

判断一个数能否被一个大于 $1$ 的奇数整除。

做法

很简单。

将这个数不断除以 $2$,直到它是一个奇数。

如果剩下来的这个奇数大于 $1$,输出 YES

否则输出 NO

Code

#include <cstdio>
#include <iostream>
#include <algorithm>
#include <vector>
#define int long long // long long
int t;

bool chaifen(int n) {
    while (n % 2 == 0) { // 到n为奇数时停止
        n /= 2;
    }
    if (n == 1) return false;
    else return true;
}

signed main() {
    scanf("%lld", &t);
    while (t--) {
        int n;
        scanf("%lld", &n);
        printf(chaifen(n) ? "YES\n" : "NO\n");
    }
    return 0;
}

2021-01-26 07:29:23 in 题解