Multiples of 4 (An Interesting Method) - GeeksforGeeks
Given a number n, the task is to check whether this number is a multiple of 4 or not without using +, -, * ,/ and % operators.
An interesting fact for n > 1 is, we do XOR of all numbers from 1 to n and if the result is equal to n, then n is a multiple of 4 else not.
The idea is to remove last bits using >>, then multiply with 4 using <<. If final result is same as n, then last two bits were 0, hence number was a multiple of four.
Read full article from Multiples of 4 (An Interesting Method) - GeeksforGeeks
Given a number n, the task is to check whether this number is a multiple of 4 or not without using +, -, * ,/ and % operators.
An interesting fact for n > 1 is, we do XOR of all numbers from 1 to n and if the result is equal to n, then n is a multiple of 4 else not.
// Returns true if n is a multiple of 4.bool isMultipleOf4(int n){ if (n == 1) return false; // Find XOR of all numbers from 1 to n int XOR = 0; for (int i = 1; i <= n; i++) XOR = XOR ^ i; // If XOR is equal n, then return true return (XOR == n);}The idea is to remove last bits using >>, then multiply with 4 using <<. If final result is same as n, then last two bits were 0, hence number was a multiple of four.
bool isMultipleOf4(long long n){ if (n==0) return true; return (((n>>2)<<2) == n);}Read full article from Multiples of 4 (An Interesting Method) - GeeksforGeeks