🦔

論理演算を用いた奇数と偶数の判定(Python)

2025/01/31に公開

実装

def is_even_or_odd(num):
    return "Even" if num & 1 == 0 else "Odd"

number = 5
result = is_even_or_odd(number)
print(f"{number} is {result}")

説明:

  1. 任意の整数をnとする。このnを二進数に変換し、1を二進数に変換する。

    • 1は二進数で表すと0b00..1。最下位ビットが1であり、それ以外のビットはすべて0である。
    • 任意の奇数nを二進数で表すと、最下位ビットが1であり、それ以外のビットは数値によって変わる。
  2. 次に、これらの二進数の論理積(AND演算)を求める。

    • 奇数の場合、最下位ビットが1であるため、n & 1の結果は1になる。一方、偶数の場合は0になる。
    • 最下位ビット以外のビットについては、1の最下位ビット以外がすべて0であるため、論理積の結果は0になる。

これにより、1とnの論理積の結果が、nが奇数か偶数かを判定できる。

Discussion