Odious number - GeeksforGeeks

08 Apr, 2021
Odious number is a nonnegative number that has an odd number of 1s in its binary expansion. The first few odious numbers are therefore 1, 2, 4, 7, 8, 11, 13, 14, 16, 19... Given a number check if its a odious number or not. Examples :  
Input : 16
Output : Odious Number
Explanation: Binary expansion of 16 = 10000, 
having number of 1s =1 i.e odd.

Input : 23
Output :  Not odious number
Explanation: Binary expansion of 23 is 10111,
the number of 1s in this is 4 i.e even. 
 
1) Count set bits in given number. 2) Return true if the count is odd, false otherwise.  
C++
Java
Python3
C#
PHP
Javascript
// C/C++ program to check if a number is// Odious Number or not#include <iostream>using namespace std;#include <math.h> /* Function to get no of set bits in binary   representation of passed binary no.   Please refer below for details of this   function :   https://www.geeksforgeeks.org/count-set-bits-in-an-integer/ */int countSetBits(int n){    unsigned int count = 0;    while (n)    {      n &= (n-1) ;      count++;    }    return count;} // Check if number is odious or notint checkOdious(int n){    return (countSetBits(n) % 2 == 1);} // Driver Codeint main(){    int num = 32;    if (checkOdious(num))        cout << "Yes";    else        cout << "No";    return 0;}
// Java program to check if a number is// Odious Number or notimport java.io.*;import java.math.*; class GFG {         /* Function to get no of set bits in binary       representation of passed binary no.       Please refer below for details of this       function :       https://www.geeksforgeeks.org/count-set-bits-in-an-integer/ */    static int countSetBits(int n)    {        int count = 0;        while (n!=0)        {          n &= (n-1) ;          count++;        }        return count;    }          // Check if number is odious or not    static boolean checkOdious(int n)    {        return (countSetBits(n) % 2 == 1);    }          // Driver Code    public static void main(String args[])    {        int num = 32;        if (checkOdious(num))            System.out.println("Yes");        else            System.out.println("No");    }} /*This code is contributed by Nikita Tiwari.*/
# Python 3 program to check if a number is# Odious Number or not # Function to get no of set bits in binary# representation of passed binary no.# Please refer below for details of this function :# https://www.geeksforgeeks.org/count-set-bits-in-an-integerdef countSetBits(n) :    count = 0         while (n) :        n = n & (n-1)        count = count + 1         return count  # Check if number is odious or notdef checkOdious(n) :    return (countSetBits(n) % 2 == 1)     # Driver Codenum = 32 if (checkOdious(num)) :    print("Yes")else :    print("No")      # This code is contributed by Nikita Tiwari.
// C# program to check if a number// is Odious Number or notusing System; class GFG {         /* Function to get no of set bits in    binary representation of passed binary    no. Please refer below for details    of this function :    https://www.geeksforgeeks.org/count-set-bits-in-an-integer/ */    static int countSetBits(int n)    {        int count = 0;        while (n != 0)        {        n &= (n - 1) ;        count++;        }                 return count;    }         // Check if number is odious or not    static bool checkOdious(int n)    {        return (countSetBits(n) % 2 == 1);    }         // Driver Code    public static void Main()    {        int num = 32;        if (checkOdious(num))            Console.Write("Yes");        else            Console.Write("No");    }} /*This code is contributed by vt_m.*/
<?php// PHP program to check if a number// is Odious Number or not // Function to get no of// set bits in binaryfunction countSetBits($n){    $count = 0;    while ($n)    {        $n &= ($n - 1) ;        $count++;    }    return $count;} // Check if number is odious or notfunction checkOdious($n){    return (countSetBits($n) % 2 == 1);} // Driver Code$num = 32;if (checkOdious($num))    echo "Yes";else    echo "No"; // This code is contributed by mits?>
<script> // JavaScript program to check if a number is// Odious Number or not     /* Function to get no of set bits in binary       representation of passed binary no.       Please refer below for details of this       function :       https://www.geeksforgeeks.org/count-set-bits-in-an-integer/ */    function countSetBits(n)    {        let count = 0;        while (n!=0)        {          n &= (n-1) ;          count++;        }        return count;    }            // Check if number is odious or not    function checkOdious(n)    {        return (countSetBits(n) % 2 == 1);    } // Driver code         let num = 32;        if (checkOdious(num))            document.write("Yes");        else            document.write("No"); </script>
Output :  
Yes
 
Mithun Kumar
code_hunt
series
Bit Magic
Bit Magic
series
Writing code in comment?
Please use ide.geeksforgeeks.org,
generate link and share the link here.
Comments
Old Comments
Set, Clear and Toggle a given bit of a number in C
Check whether K-th bit is set or not
Write an Efficient Method to Check if a Number is Multiple of 3
Reverse actual bits of the given number
Program to find parity
Builtin functions of GCC compiler
Check if a Number is Odd or Even using Bitwise Operators
Count number of bits to be flipped to convert A to B
Swap bits in a given number
Check for Integer Overflow