svetlozar_kirkov

Biggest Three Prime Numbers

Feb 5th, 2015
276
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
Java 2.20 KB | None | 0 0
  1. import java.util.ArrayList;
  2. import java.util.Arrays;
  3. import java.util.Collections;
  4. import java.util.List;
  5. import java.util.Scanner;
  6.  
  7. public class Biggest3PrimeNumbers {
  8.  
  9.  
  10.     public static void main(String[] args) {
  11.         Scanner input = new Scanner(System.in);
  12.         String[] inputNumsString = input.nextLine().split("[\\(\\)\\s]+");
  13.         String[] cleaned = clean(inputNumsString);
  14.         if (cleaned.length < 3){
  15.             System.out.println("No");
  16.             return;
  17.         }
  18.         ArrayList<Integer> numbers = new ArrayList<>();
  19.         for (int i = 0; i < cleaned.length; i++){
  20.             numbers.add(Integer.parseInt(cleaned[i]));
  21.         }
  22.         ArrayList<Integer> primes = new ArrayList<>();
  23.         for (int i = 0; i < numbers.size(); i++){
  24.             if (isPrime(numbers.get(i)) && !primes.contains(numbers.get(i))){
  25.                 primes.add(numbers.get(i));
  26.             }
  27.         }
  28.         if (primes.size()<3){
  29.             System.out.println("No");
  30.             return;
  31.         }
  32.         ArrayList<Integer> biggestThreePrimes = new ArrayList<>();
  33.         int currentMax = Collections.max(primes);
  34.         for (int z = 0; z < 3; z++){
  35.              for (int i = 0; i < primes.size(); i++){
  36.                 if (primes.get(i)==currentMax){
  37.                     biggestThreePrimes.add(primes.get(i));
  38.                     primes.remove(i);
  39.                     if (primes.size()>=1){
  40.                         currentMax = Collections.max(primes);
  41.                     }
  42.                     break;
  43.                 }
  44.             }
  45.         }
  46.         int sum = biggestThreePrimes.stream().mapToInt(Integer::intValue).sum();
  47.         System.out.println(sum);
  48.     }
  49.     public static String[] clean(final String[] v) {
  50.         List<String> list = new ArrayList<String>(Arrays.asList(v));
  51.         list.removeAll(Collections.singleton(""));
  52.         return list.toArray(new String[list.size()]);
  53.     }
  54.     public static boolean isPrime(int n) {
  55.         if (n==1) return false;
  56.         if (n == 2) return true;
  57.         if (n%2==0) return false;
  58.         for(int i=3;i*i<=n;i+=2) {
  59.             if(n%i==0)
  60.                 return false;
  61.         }
  62.         return true;
  63.     }
  64.    
  65. }
Advertisement
Add Comment
Please, Sign In to add comment