Skip to content

Instantly share code, notes, and snippets.

@StaniTr
Last active August 29, 2015 14:06
Show Gist options
  • Star 0 You must be signed in to star a gist
  • Fork 0 You must be signed in to fork a gist
  • Save StaniTr/56bb3423f1b3ef7a8825 to your computer and use it in GitHub Desktop.
Save StaniTr/56bb3423f1b3ef7a8825 to your computer and use it in GitHub Desktop.
import java.util.ArrayList;
import java.util.Arrays;
import java.util.Collections;
import java.util.HashSet;
import java.util.List;
import java.util.Scanner;
import java.util.Set;
import java.util.regex.Matcher;
import java.util.regex.Pattern;
public class Exam_Problem3_Biggest3PrimeNumbers {
public static void main(String[] args) {
List<String> inputNums= new ArrayList<>();
List<Integer> intList=new ArrayList<>();
List<Integer> primeNums=new ArrayList<>();
//input
Scanner scanner = new Scanner(System.in);
String input = scanner.nextLine();
//numbers from input as str
Pattern nums = Pattern
.compile("[0-9]+");
Matcher matcher = nums.matcher(input);
while (matcher.find()) {
inputNums.add(matcher.group());
}
//str to int intList contains all nums
for(String inputNum : inputNums) intList.add(Integer.valueOf(inputNum));
for (int temp = intList.size(),i=0; i < temp; i++) {
int n=intList.get(i);
//check for prime numbers
if((n==2)||(n==3)||(n==5)||(n==7)||(n==11)||(n==13)||(n==17)||(n==19)||(n==23)||(n==29)||(n==31)||(n==37)||(n==41)||(n==43)||(n==47)||(n==53)||(n==59)||(n==61)||(n==67)||(n==71)||(n==73)||(n==79)||(n==83)||(n==89)||(n==97)){
primeNums.add(n);
}
}
for (int temp = primeNums.size(), i = 0; i < temp; i++) {
int inputNum = primeNums.get(i);
}
//primeHash - no duplicates
Set<Integer> primeHash = new HashSet<Integer>(primeNums);
//primeHash>=3 means more or equal to 3 prime numbers
if(primeHash.size()>=3){
int lenHash=primeHash.size();
Object[] primeObject=primeHash.toArray();
int lenObj=primeObject.length;
int arr[]=new int[lenHash];
for (int i = 0; i < lenObj; i++) {
arr[i]=(int) primeObject[i];
}
Arrays.sort(arr);
int num1=arr[lenObj-1];
int num2=arr[lenObj-2];
int num3=arr[lenObj-3];
int sum=num1+num2+num3;
System.out.println(sum);
}else{
System.out.println("No");
}
}}
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment