In this HackerRank Prime Checker problem in java programming language You are given a class Solution and its main method in the editor. Your task is to create a class Prime. The class Prime should contain a single method checkPrime.
You should write the checkPrime method in such a way that the code prints only the prime numbers.
HackerRank Prime Checker problem solution in java programming.
import java.io.*;
import java.util.*;
import java.text.*;
import java.math.*;
import java.util.regex.*;
import java.lang.reflect.*;
import static java.lang.System.in;
class Prime {
void checkPrime(int... numbers) {
for (int num : numbers) {
if (isPrime(num)) {
System.out.print(num + " ");
}
}
System.out.println();
}
boolean isPrime(int n) {
if (n < 2) {
return false;
} else if (n == 2) {
return true;
} else if (n % 2 == 0) {
return false;
}
int sqrt = (int) Math.sqrt(n);
for (int i = 3; i <= sqrt; i += 2) {
if (n % i == 0) {
return false;
}
}
return true;
}
}
public class Solution {
public static void main(String[] args) {
try{
BufferedReader br=new BufferedReader(new InputStreamReader(in));
int n1=Integer.parseInt(br.readLine());
int n2=Integer.parseInt(br.readLine());
int n3=Integer.parseInt(br.readLine());
int n4=Integer.parseInt(br.readLine());
int n5=Integer.parseInt(br.readLine());
Prime ob=new Prime();
ob.checkPrime(n1);
ob.checkPrime(n1,n2);
ob.checkPrime(n1,n2,n3);
ob.checkPrime(n1,n2,n3,n4,n5);
Method[] methods=Prime.class.getDeclaredMethods();
Set<String> set=new HashSet<>();
boolean overload=false;
for(int i=0;i<methods.length;i++)
{
if(set.contains(methods[i].getName()))
{
overload=true;
break;
}
set.add(methods[i].getName());
}
if(overload)
{
throw new Exception("Overloading not allowed");
}
}
catch(Exception e)
{
System.out.println(e);
}
}
}
The solution in Java 8 programming.
import java.io.*;
import java.util.*;
import java.text.*;
import java.math.*;
import java.util.regex.*;
import java.lang.reflect.*;
import static java.lang.System.*;
class Prime {
static void checkPrime(int...arr) {
for (int i = 0; i < arr.length; i++) {
boolean flag = false;
for (int j = 2; j <= Math.sqrt(arr[i]); j++) {
if (arr[i] % j == 0) {
flag = true;
break;
}
}
if (arr[i] > 1 && (!flag || arr[i] == 2)) {
System.out.print(arr[i] + " ");
}
}
System.out.println();
}
}
public class Solution {
public static void main(String[] args) {
try{
BufferedReader br=new BufferedReader(new InputStreamReader(in));
int n1=Integer.parseInt(br.readLine());
int n2=Integer.parseInt(br.readLine());
int n3=Integer.parseInt(br.readLine());
int n4=Integer.parseInt(br.readLine());
int n5=Integer.parseInt(br.readLine());
Prime ob=new Prime();
ob.checkPrime(n1);
ob.checkPrime(n1,n2);
ob.checkPrime(n1,n2,n3);
ob.checkPrime(n1,n2,n3,n4,n5);
Method[] methods=Prime.class.getDeclaredMethods();
Set<String> set=new HashSet<>();
boolean overload=false;
for(int i=0;i<methods.length;i++)
{
if(set.contains(methods[i].getName()))
{
overload=true;
break;
}
set.add(methods[i].getName());
}
if(overload)
{
throw new Exception("Overloading not allowed");
}
}
catch(Exception e)
{
System.out.println(e);
}
}
}