Question: An Evil number is a positive whole number which has even number of 1’s in its binary equivalent.
Example: Binary equivalent of 9 is 1001, which contains even number of 1’s.
Thus, 9 is an Evil Number.
A few Evil numbers are 3, 5, 6, 9….
Design a program to accept a positive whole number ‘N’ where N>2 and N<100. Find the binary equivalent of the number and count the number of 1s in it and display whether it is an Evil number or not with an appropriate message.
Test your program with the following data and some random data:
Example 1:
INPUT: N = 15
BINARY EQUIVALENT: 1111
NUMBER OF 1’s: 4
OUTPUT: EVIL NUMBER
Example 2:
INPUT: N = 26
BINARY EQUIVALENT: 11010
NUMBER OF 1’s: 3
OUTPUT: NOT AN EVIL NUMBER
Example 3:
INPUT: N = 145
OUTPUT: NUMBER OUT OF RANGE
import java.util.Scanner; class Evil { String toBinary(int n) // function to convert decimal number to binary { String b=""; while(n>0) { int r = n%2; b = r + b; n/=2; } return b; } public static void main(String args[]) { Evil obj = new Evil(); Scanner ob = new Scanner(System.in); System.out.println("Enter a number N between 2 and 100"); int n = ob.nextInt(); if(n>2 && n<100) { String bin = obj.toBinary(n); System.out.println("INPUT: " + n); System.out.println("BINARY EQUIVALENT: " + bin); int c=0; for(int i=0; i<bin.length(); i++) { if(bin.charAt(i) == '1') c++; } System.out.println("NUMBER OF 1's: " + c); if(c%2==0) System.out.println("EVIL NUMBER"); else System.out.println("NOT AN EVIL NUMBER"); } else { System.out.println("NUMBER OUT OF RANGE"); } } }