#include <stdio.h> #include <stdint.h> // Complete the function const char* is_power_of_two(uint32_t n) { // Your logic here if(n!=0 &((n&(n-1))==0)) { return "YES"; } else return "NO"; } int main() { uint32_t n; scanf("%u", &n); const char* result = is_power_of_two(n); printf("%s", result); return 0; }
it was a trick question , n&(n-1) clears the least set bit in n, if n is a power of 2, only 1 bit is set ,so the answer is 0.
Test Cases
Test Results
Input
8
Expected Output
YES