Evil and odious number



If the binary value of a given number 1's count is even, that is an "Evil number". Otherwise it's a "Odious number"



Example-1:


Input    : n = 3
Output   : Evil number  
Explain  : 3 binary value is "11". The 1's count is even So its "Evil number".


Example-2:


Input    : n = 7
Output   : Odious number  
Explain  : 7 binary value is "111". The 1's count is odd So its "Odious number".   







Solution




public class Main
{
    public static void main(String [] args)
    {
        int n = 3;

        String binary = Integer.toBinaryString(n);

        int count = 0;

        for(int i=0; i<binary.length(); i++) 
        {
            if(binary.charAt(i) == '1'){

                count++;
            }
        }

        if(count % 2 == 0){

            System.out.print("Evil number");
        }

        else{

            System.out.print("Odious number");
        }     
    }
}
n = 3

s = bin(n)

a = str(s)

b = a.count("1")

if(b % 2 == 0):

    print("Evil number")

else:

    print("Odious number")



Output



Evil number