import java.util.Scanner; class Number { private double value; public Number(double value) { this.value = value; } public boolean isZero() { return value == 0; } public boolean isPositive() { return value > 0; } public boolean isNegative() { return value < 0; } public boolean isOdd() { return (int) value % 2 != 0; } public boolean isEven() { // This is an explicit narrowing typecast from double to int return (int) value % 2 == 0; } public boolean isPrime() { if (value <= 1 || value != (int) value) return false; for (int i = 2; i <= Math.sqrt(value); i++) if ( (int) value % i == 0 ) return false; return true; } public boolean isArmstrong() { if (value != (int) value) return false; int num = (int) value, sum = 0, digits = String.valueOf(num).length(); for (int n = num; n > 0; n /= 10) sum += Math.pow(n % 10, digits); return sum == num; } public static void main(String[] args) { Scanner sc = new Scanner(System.in); System.out.print("Enter a number: "); Number number = new Number(sc.nextDouble()); System.out.println( "Is Zero: " + number.isZero() + ", Is Positive: " + number.isPositive() + ", Is Negative: " + number.isNegative() + ", Is Odd: " + number.isOdd() + ", Is Even: " + number.isEven() + ", Is Prime: " + number.isPrime() + ", Is Armstrong: " + number.isArmstrong() ); sc.close(); } }