Read Also: Magic Number in Java
What is Evil Number
An Evil number is a positive whole number whose binary representation contains even number of 1's.
Examples
Number to check : 23
Binary representation : 10111
Binary representation contains even number of 1's : Yes // 23 is an Evil number
Number to check : 8118
Binary representation : 1111110110110
Binary representation contains even number of 1's : Yes // 8118 is an Evil number
Below are examples of numbers which are NOT Evil numbers
Number to check : 19
Binary representation : 10011
Binary representation contains even number of 1's : No // 19 is NOT an Evil number
Number to check : 47
Binary representation : 101111
Binary representation contains even number of 1's : No // 47 is NOT an Evil number
List of Evil numbers from 1 to 10 are : 3, 5, 6, 9, 10
Read Also: Disarium Number in Java
Java Program for Evil Number
import java.util.Scanner;
public class JavaHungry { public static void checkEvilNumber(Integer inputNumber) { /* Converting Integer to Binary equivalent,
we have used java built in method toBinaryString() to convert decimal value to binary */ String binaryNumber = Integer.toBinaryString(inputNumber); System.out.println("Binary representation : "+binaryNumber); // Count number of 1 in binaryNumber int countOne = countNumberOfOne(binaryNumber); // Check if countOne is even if (countOne % 2 == 0) System.out.println(inputNumber+" is an Evil Number"); else System.out.println(inputNumber+" is NOT an Evil Number"); } public static int countNumberOfOne(String binaryNumber) { /* Calculate length (number of digits) of the binaryNumber */ int length = binaryNumber.length();
int count = 0; char ch; for(int i=0; i < length; i++) { ch = binaryNumber.charAt(i); if(ch == '1') count++; } System.out.println("Number of Ones in Binary Representation : "+ count); return count; } public static void main(String args[]) { System.out.println("Enter any number : "); Scanner scan = new Scanner(System.in); // Store the input number Integer inputNumber = scan.nextInt(); checkEvilNumber(inputNumber); } }
Output:
Enter any number :
23
Binary representation : 10111
Number of Ones in Binary Representation : 4
23 is an Evil Number
Algorithm for Evil Number
1. Convert the given inputNumber to binary equivalent using toBinaryString(int) method.2. Calculate the number of 1 in binary equivalent
3. Using for loop
a. Taking one digit at a time of binaryNumber, check whether it's equal to '1'. Increment count variable by 1 if the digit is equal to '1'.
4. Check if variable countOne is even or not
a. If even, then the inputNumber is an Evil number.
b. Otherwise, the inputNumber is not an Evil number.
That's all for this post. Please mention in comments in case you have any questions related to evil number in java with examples.
You may also like:
Happy number program in Java (answer)
Magic number program in Java (solution)
Disarium number program in Java (answer)
Duck number program in Java (answer)
Neon number program in Java (solution)
Bouncy number program in Java (answer)
Special number program in Java (solution)
Pronic number program in Java (answer)
Perfect number program in Java (solution)