Hamming Number Program in Java | ISC Computer Science 2024 Paper 2

Hamming numbers are positive integers whose prime factors include 2, 3 and 5 only.

Example:
n = 6 is a hamming number as 6 = 2 × 3. So, its prime factors are limited to 2, 3.
n = 8 is a hamming number as 8 = 2 × 2 × 2 and it has only 2 as its prime factors.
n = 90 is a hamming number as 90 = 2 × 3 × 3 × 5 which has only 2, 3, 5 as prime factors.
n = 14 is not a hamming number as 14 = 2 × 7. It has 7 as one of its prime factors.
n = 44 is not a hamming number as 44 = 2 × 2 × 11. It has 11 as one of its prime factors.

Design a program to accept any positive integer number and check if it is a Hamming number or not. Display the result with an appropriate message in the format specified below. The program should also generate error message if a negative number is entered.

Test your program for the following data and some random data:

Example 1
INPUT: Enter any number: 3600
OUTPUT: 3600 = 2 × 2 × 2 × 2 × 3 × 3 × 5 × 5
3600 IS A HAMMING NUMBER

Example 2
INPUT: Enter any number: 5832
OUTPUT: 5832 = 2 × 2 × 2 × 3 × 3 × 3 × 3 × 3 × 3
5832 IS A HAMMING NUMBER

Example 3
INPUT: Enter any number: 7854
OUTPUT: 7854 = 2 × 3 × 7 × 11 × 17
7854 IS NOT A HAMMING NUMBER

Example 4
INPUT: Enter a number: -120
OUTPUT: NEGATIVE NUMBER ENTERED. INVALID INPUT

import java.util.Scanner;
class Hamming{
    public static void main(String[] args){
        Scanner in = new Scanner(System.in);
        System.out.print("Enter a number: ");
        int n = Integer.parseInt(in.nextLine());
        if(n < 0){
            System.out.println("NEGATIVE NUMBER ENTERED. INVALID INPUT");
            return;
        }
        boolean status = true;
        if(n < 2)
            status = false;
        int pf = 2;
        int num = n;
        int count = 0;
        while(num > 1){
            if(num % pf == 0){
                count++;
                if(count == 1)
                    System.out.print(pf);
                else
                    System.out.print(" x " + pf);
                num /= pf;
                if(pf != 2 && pf != 3 && pf != 5)
                    status = false;
            }
            else
                pf++;
        }
        if(status)
            System.out.println("\n" + n + " IS A HAMMING NUMBER");
        else
            System.out.println("\n" + n + " IS NOT A HAMMING NUMBER");
    }
}

Algorithm

STEP 1: START
STEP 2: INPUT N
STEP 3: IF N < 0:
STEP 4: PRINT “NEGATIVE NUMBER ENTERED. INVALID INPUT”
STEP 5: GOTO STEP 19
STEP 6: ELSE: STATUS = TRUE
STEP 7: IF N < 2 THEN STATUS = FALSE
STEP 8: PF = 2
STEP 9: NUM = N
STEP 10: COUNT = 0
STEP 11: WHILE NUM > 1 REPEAT STEP 12 THROUGH 17
STEP 12: IF NUM MOD PF = 0:
STEP 13: COUNT = COUNT + 1
STEP 14: IF COUNT = 1 THEN PRINT PF ELSE PRINT ” X ” + PF
STEP 15: NUM = NUM / PF
STEP 16: IF PF != 2 AND PF != 3 AND PF != 5 THEN STATUS = FALSE
STEP 17: ELSE: PF = PF + 1
STEP 18: IF STATUS = TRUE THEN PRINT “HAMMING” ELSE PRINT “NOT HAMMING”
STEP 19: STOP

4 thoughts on “Hamming Number Program in Java | ISC Computer Science 2024 Paper 2

Leave a Reply to Vibhu Cancel reply

Your email address will not be published. Required fields are marked *