"""
Six different functions that accept 5 or 7
and return the other number, without using if/switch.
"""
# 1. Arithmetic sum trick: 5 + 7 = 12
def flip_sum(x):
return 12 - x
# 2. Product trick: 5 * 7 = 35
def flip_product(x):
return 35 // x
# 3. XOR trick: 5 ^ 7 = 2
# x ^ 2 flips 5 ↔ 7
def flip_xor(x):
return x ^ 2
# 4. Modulo-based trick using divisibility:
# x % 7 == 0 → x is 7
# x % 5 == 0 → x is 5
# bool → int automatically (True=1, False=0)
def flip_mod(x):
return 5 * (x % 7 == 0) + 7 * (x % 5 == 0)
# 5. Absolute-value trick: |x - 12| flips 5 ↔ 7
def flip_abs(x):
return abs(x - 12)
# 6. Array lookup using arithmetic index:
# For x = 5 → (5 - 5) // 2 = 0 → table[0] = 7
# For x = 7 → (7 - 5) // 2 = 1 → table[1] = 5
def flip_array(x):
table = [7, 5]
index = (x - 5) // 2
return table[index]
def main():
print("flip_sum(5) =", flip_sum(5))
print("flip_sum(7) =", flip_sum(7))
print()
print("flip_product(5) =", flip_product(5))
print("flip_product(7) =", flip_product(7))
print()
print("flip_xor(5) =", flip_xor(5))
print("flip_xor(7) =", flip_xor(7))
print()
print("flip_mod(5) =", flip_mod(5))
print("flip_mod(7) =", flip_mod(7))
print()
print("flip_abs(5) =", flip_abs(5))
print("flip_abs(7) =", flip_abs(7))
print()
print("flip_array(5) =", flip_array(5))
print("flip_array(7) =", flip_array(7))
if __name__ == "__main__":
main()
"""
OUTPUT:
flip_sum(5) = 7
flip_sum(7) = 5
flip_product(5) = 7
flip_product(7) = 5
flip_xor(5) = 7
flip_xor(7) = 5
flip_mod(5) = 7
flip_mod(7) = 5
flip_abs(5) = 7
flip_abs(7) = 5
flip_array(5) = 7
flip_array(7) = 5
"""