program to check given number is evil number or not

EVIL NUMBER

EVIL NUMBER:
       In number theory, an evil number is a non-negative number that has an even number of 1s in its binary expansion.
The first evil numbers are:
0, 3, 5, 6, 9, 10, 12, 15, 17, 18, 20, 23, 24, 27, 29, 30, 33, 34, 36, 39 .
These numbers give the positions of the zero values in the Thue–Morse sequence.
Numbers that are not evil are called odious numbers.


/* program to check given number is evil number or not*/


import java.io.*;

public class EvilNumber
{
    public static void main(String args[])throws IOException
    {
        int num, a, count , c, i;
        int binNum[] = new int[20];
        InputStreamReader in = new InputStreamReader(System.in);
        BufferedReader br = new BufferedReader(in);
        System.out.println("Enter a number:");
        num = Integer.parseInt(br.readLine());
        count = 0;  // count the number of 1's
        c = 0;      // for index of array
        while(num!=0)
        {
            a = num % 2;
            binNum[c] = a;
            if(a == 1)
             count++;
            num = num / 2;
            c++;
        }
        System.out.println("Total number of 1 is = " + count);
        // Print the binary number
        for(i=c-1; i>=0 ; i--)
        {
            System.out.print(binNum[i]+" ");
        }
        // Checking the number is Evil or Not
        if(count % 2 == 0)
        {
            System.out.println("\nEntered number is Evil an Number");
        }
        else
        {
            System.out.println("\nEntered number is not an Evil Number");
        }
    }   
}



OUTPUT:


Enter a number:
10
Total number of 1 is = 2
1 0 1 0 
Entered number is Evil an Number



Enter a number:
13
Total number of 1 is = 3
1 1 0 1 
Entered number is not an Evil Number

No comments:

Post a Comment