Composite Magic ISC Computer Science 2014 Practical

A composite magic number is a positive integer which is composite as well as a magic number.

Composite number: A composite number is a number that has more than two factors.
For example: 10
Factors are: 1, 2, 5, 10

Magic number: A magic number is a number in which the eventual sum of the digits is equal to 1.
For example: 28 ⇒ 2 + 8 = 10 
⇒ 1 + 0 = 1

Accept two positive integers m and n, where m is less than n as user input. Display the number of composite magic integers that are in the range between m and n (both inclusive) and output them along with the frequency, in the format specified below.

Test your program with the sample data and some random data:

Example 1:
INPUT:
m = 10
n = 100
OUTPUT:
THE COMPOSITE MAGIC INTEGERS ARE:
10, 28, 46, 55, 64, 82, 91, 100
FREQUENCY OF COMPOSITE MAGIC INTEGERS IS: 8

Example 2:
INPUT:
m = 1200
n = 1300
OUTPUT:
THE COMPOSITE MAGIC INTEGERS ARE:
1207, 1216, 1225, 1234, 1243, 1252, 1261, 1270, 1288
FREQUENCY OF COMPOSITE MAGIC INTEGERS IS: 9

Example 3:
INPUT:
m = 120
n = 99
OUTPUT:
INVALID INPUT

import java.util.Scanner;
class CompositeMagic{
    public static void main(String[] args){
        Scanner in = new Scanner(System.in);
        System.out.print("m = ");
        int m = Integer.parseInt(in.nextLine());
        System.out.print("n = ");
        int n = Integer.parseInt(in.nextLine());
        if(m >= n){
            System.out.println("INVALID INPUT");
            return;
        }
        int f = 0;
        for(int i = m; i <= n; i++){
            if(isComposite(i) && isMagic(i)){
                if(f == 0){
                    System.out.println("THE COMPOSITE MAGIC INTEGERS ARE:");
                    System.out.print(i);
                }
                else
                    System.out.print(", " + i);
                f++;
            }
        }
        System.out.println("\nFREQUENCY OF COMPOSITE MAGIC INTEGERS IS: " + f);
    }
    public static boolean isComposite(int n){
        int f = 0;
        for(int i = 1; i <= n; i++){
            if(n % i == 0)
                f++;
            if(f > 2)
                return true;
        }
        return false;
    }
    public static boolean isMagic(int n){
        if(n == 1)
            return true;
        if(n < 10)
            return false;
        int sum = 0;
        for(int i = n; i != 0; i /= 10)
            sum += i % 10;
        return isMagic(sum);
    }
}

Comments

Popular posts from this blog

Encrypt Program ISC Specimen 2023 Theory

No Repeat Program ISC Computer Science 2022 Semester 2 Theory

Bank Inheritance Program ISC Specimen 2023 Theory