Question

# 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
```
```

# Share code with your friends

Code

```				```
import java.util.Scanner;
public class CompositeMagicNumber
{
public static boolean isMagic(int num)
{
while(num > 9)
{
num = sumOfDigits(num);
}
if(num==1)
{
return true;
}
else
{
return false;
}
}
public static int sumOfDigits(int num)
{
int sum = 0;
while(num > 0)
{
sum += num % 10;
num /= 10;
}
return sum;
}

public static boolean isComposite(int num)
{
int c = 0,i=0;
for(i = 1; i <= num; i++)
{
if(num % i == 0)
{
c++;
}
}
if(c>2)
{
return true;
}
else
{
return false;
}

}

public static void main(String args[])
{
int m=0,n=0,count=0,i=0;
Scanner sc=new Scanner(System.in);
System.out.print("m = ");
m = Math.abs(sc.nextInt());
System.out.print("n = ");
n = Math.abs(sc.nextInt());
if(m >= n)
{
System.out.println("INVALID INPUT");

}
else
{
count = 0;
System.out.println("THE COMPOSITE MAGIC INTEGERS ARE:");
for(i = m; i <= n; i++)
{
if(isComposite(i) && isMagic(i))
{
if(count == 0)
{
System.out.print(i);
}
else
{
System.out.print(", " + i);
}
count++;
}
}
System.out.println("\nFREQUENCY OF COMPOSITE MAGIC INTEGERS IS: " + count);
}
}
}

```
```

Sale

50
Sale

150
Sale

200
Sale

50
Sale

50
Sale

50
Sale

50
Sale

50
Sale

50