Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- import java.util.ArrayList;
- import java.util.Arrays;
- import java.util.Collections;
- import java.util.List;
- import java.util.Scanner;
- public class Biggest3PrimeNumbers {
- public static void main(String[] args) {
- Scanner input = new Scanner(System.in);
- String[] inputNumsString = input.nextLine().split("[\\(\\)\\s]+");
- String[] cleaned = clean(inputNumsString);
- if (cleaned.length < 3){
- System.out.println("No");
- return;
- }
- ArrayList<Integer> numbers = new ArrayList<>();
- for (int i = 0; i < cleaned.length; i++){
- numbers.add(Integer.parseInt(cleaned[i]));
- }
- ArrayList<Integer> primes = new ArrayList<>();
- for (int i = 0; i < numbers.size(); i++){
- if (isPrime(numbers.get(i)) && !primes.contains(numbers.get(i))){
- primes.add(numbers.get(i));
- }
- }
- if (primes.size()<3){
- System.out.println("No");
- return;
- }
- ArrayList<Integer> biggestThreePrimes = new ArrayList<>();
- int currentMax = Collections.max(primes);
- for (int z = 0; z < 3; z++){
- for (int i = 0; i < primes.size(); i++){
- if (primes.get(i)==currentMax){
- biggestThreePrimes.add(primes.get(i));
- primes.remove(i);
- if (primes.size()>=1){
- currentMax = Collections.max(primes);
- }
- break;
- }
- }
- }
- int sum = biggestThreePrimes.stream().mapToInt(Integer::intValue).sum();
- System.out.println(sum);
- }
- public static String[] clean(final String[] v) {
- List<String> list = new ArrayList<String>(Arrays.asList(v));
- list.removeAll(Collections.singleton(""));
- return list.toArray(new String[list.size()]);
- }
- public static boolean isPrime(int n) {
- if (n==1) return false;
- if (n == 2) return true;
- if (n%2==0) return false;
- for(int i=3;i*i<=n;i+=2) {
- if(n%i==0)
- return false;
- }
- return true;
- }
- }
Advertisement
Add Comment
Please, Sign In to add comment