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.
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.
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 for the following data and some random data:
Example 1
INPUT:
m = 40
n = 100
OUTPUT:
THE COMPOSITE MAGIC INTEGERS ARE:
46, 55, 64, 82, 91, 100
FREQUENCY OF COMPOSITE MAGIC INTEGERS IS: 6
Example 2
INPUT:
m = 1210
n = 1300
OUTPUT:
THE COMPOSITE MAGIC INTEGERS ARE:
1216, 1225, 1234, 1243, 1252, 1261, 1270, 1288
FREQUENCY OF COMPOSITE MAGIC INTEGERS IS: 8
Example 3
INPUT:
m = 120
n = 97
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 count = 0;
System.out.println("THE COMPOSITE MAGIC INTEGERS ARE:");
for(int i = m; i <= n; i++){
if(isComposite(i) && isMagic(i)){
System.out.print(i + " ");
count++;
}
}
if(count == 0)
System.out.print("NIL");
System.out.println("\nFREQUENCY OF COMPOSITE MAGIC INTEGERS IS: " + count);
}
public static boolean isComposite(int n){
if(n <= 3)
return false;
for(int i = 2; i < n; i++){
if(n % i == 0)
return true;
}
return false;
}
public static boolean isMagic(int n){
while(n > 9){
int sum = 0;
for(int i = n; i > 0; i /= 10)
sum += i % 10;
n = sum;
}
return n == 1;
}
}