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.io.*;
class MagicComposite
{
boolean isComposite(int n) // Function to check for Composite number
{
int count=0;
for(int i=1;i<=n;i++)
{
if(n%i==0)
count++;
}
if(count>2)
return true;
else
return false;
}
int sumDig(int n) // Function to return sum of digits of a number
{
int s = 0;
while(n>0)
{
s = s + n%10;
n = n/10;
}
return s;
}
boolean isMagic(int n) // Function to check for Magic number
{
int a = sumDig(n);
while(a>9)
{
a = sumDig(a);
}
if(a == 1)
return true;
else
return false;
}
public static void main(String args[])throws IOException
{
MagicComposite ob = new MagicComposite();
BufferedReader br=new BufferedReader (new InputStreamReader(System.in));
System.out.print("Enter the lower limit(m) : ");
int m=Integer.parseInt(br.readLine());
System.out.print("Enter the upper limit(n) : ");
int n=Integer.parseInt(br.readLine());
int c=0;
if (m<n)
{
System.out.println("The Composite Magic Integers are: ");
for(int i=m; i<=n; i++)
{
if(ob.isComposite(i)==true && ob.isMagic(i)==true)
{
if (c==0) // Printing the first number without any comma
System.out.print(i);
else
System.out.print(", "+i);
c++;
}
}
System.out.println("nThe frequency of Composite Magic Integers is : "+c);
}
else
System.out.println("OUT OF RANGE");
}
}