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