Check If a Number Is a Power of Two

Code

#include <stdio.h>
#include <stdint.h>

const char* is_power_two(uint32_t num){
    uint32_t sum = 0; 
    while(num){
        sum += num & 1u;
        num >>= 1;
    }
    if(sum == 1){
            return "YES";
    }
    else{
        return "NO";
    }
}

int main(){
    uint32_t reg; 
    scanf("%u",&reg);
    printf("%s",is_power_two(reg));
    return 0;
}

Solving Approach

 

 

 

Upvote
Downvote
Loading...

Input

8

Expected Output

YES