Advertisement
dimipan80

Exam 3. Biggest 3 Prime Numbers

Sep 16th, 2014
278
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
Java 1.49 KB | None | 0 0
  1. import java.util.Scanner;
  2. import java.util.TreeSet;
  3.  
  4. public class _3_Biggest3PrimeNumbers {
  5.  
  6.     public static void main(String[] args) {
  7.         // TODO Auto-generated method stub
  8.         Scanner scan = new Scanner(System.in);
  9.         String inputLine = scan.nextLine().trim();
  10.         String[] numStr = inputLine.split("[) (]+");
  11.         int[] numbers = new int[numStr.length - 1];
  12.         for (int i = 0; i < numbers.length; i++) {
  13.             numbers[i] = Integer.parseInt(numStr[i + 1]);
  14.         }
  15.  
  16.         boolean foundSumOf3BiggestPrimeNums = false;
  17.         if (numbers.length > 2) {
  18.             TreeSet<Integer> numbSet = new TreeSet<>();
  19.             for (int num : numbers) {
  20.                 numbSet.add(num);
  21.             }
  22.  
  23.             int countPrimes = 0;
  24.             int sumOfBiggestPrimes = 0;
  25.             for (Integer num : numbSet.descendingSet()) {
  26.                 if (countPrimes == 3 || num < 2) {
  27.                     break;
  28.                 } else if (num > 1 && num < 8) {
  29.                     if (num == 2 || num == 3 || num == 5 || num == 7) {
  30.                         countPrimes++;
  31.                         sumOfBiggestPrimes += num;
  32.                     }
  33.                 } else if (num > 10 && num % 2 != 0) {
  34.                     boolean isPrime = true;
  35.                     int numSqrt = (int) Math.sqrt(num);
  36.                     for (int i = numSqrt; i > 2; i--) {
  37.                         if (num % i == 0) {
  38.                             isPrime = false;
  39.                             break;
  40.                         }
  41.                     }
  42.  
  43.                     if (isPrime) {
  44.                         countPrimes++;
  45.                         sumOfBiggestPrimes += num;
  46.                     }
  47.                 }
  48.             }
  49.  
  50.             if (countPrimes == 3) {
  51.                 foundSumOf3BiggestPrimeNums = true;
  52.                 System.out.println(sumOfBiggestPrimes);
  53.             }
  54.         }
  55.  
  56.         if (!foundSumOf3BiggestPrimeNums) {
  57.             System.out.println("No");
  58.         }
  59.     }
  60.  
  61. }
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement