Submission details
Task:Alkuluvut
Sender:TapaniS
Submission time:2025-09-27 22:38:34 +0300
Language:Java
Status:READY
Result:17
Feedback
groupverdictscore
#1ACCEPTED17
#20
#30
Test results
testverdicttimegroup
#1ACCEPTED0.41 s1, 2, 3details
#2--2, 3details
#3--3details

Code

import java.util.*;

public class alkuluvut {


	public static void main(String[] args) {

		Scanner input = new Scanner(System.in);

		int t = Integer.parseInt(input.nextLine());
		
		int[] k = new int[t];  // numeroiden maara
		String[] numerot = new String[t]; // numerot
		
		for (int i = 0; i < t; i++) {
			
			k[i] = Integer.parseInt(input.nextLine());
			numerot[i] =  input.nextLine();
			
		}

		input.close(); 
		
		// Program here

		// Alkuluvut

        int limit = 100000;
        boolean[] isPrime = new boolean[limit + 1];

        for (int i = 2; i <= limit; i++) {
            isPrime[i] = true;
        }

        for (int p = 2; p * p <= limit; p++) {
            if (isPrime[p]) {
                for (int multiple = p * p; multiple <= limit; multiple += p) {
                    isPrime[multiple] = false;
                }
            }
        }

        ArrayList<Integer> primes = new ArrayList<>();
        for (int i = 2; i <= limit; i++) {
            if (isPrime[i]) {
                primes.add(i);
            }
        }

		 int limit2 = primes.size();


		for (int i = 0; i < t; i++) {	 // tapaus t
		
			int n = k[i];  // maara
			
			String[] numberParts = numerot[i].split("\\s+");
			
			 int[] numbers = new int[n];

			for (int i2 = 0; i2 < n; i2++) {	
			
				numbers[i2] = Integer.parseInt(numberParts[i2]);

			}

		if (n == 1) {
			
			int x = numbers[0];
						
			switch (x) {
            case 1:
                System.out.println("YES");
				System.out.println("11");
                break;
            case 2:
                System.out.println("YES");
				System.out.println("2");
                break;
            case 3:
                System.out.println("YES");
				System.out.println("3");
                break;
            case 4:
                System.out.println("NO");
                break;
            case 5:
                System.out.println("YES");
				System.out.println("5");
                break;
            case 6:
                System.out.println("NO");
                break;
            case 7:
                System.out.println("YES");
				System.out.println("7");
                break;
            case 8:
                System.out.println("NO");
                break;
            case 9:
                System.out.println("NO");
                break;
				
            default:
                System.out.println("NO");
				
        }  // switch
						
		}  // n==1

		// n>1

		boolean loytyi = false;
		
		for (int i1 = 5; i1 < limit2; i1++) {
			
			if (loytyi) {break;}
			String test = primes.get(i1) + "";
			
			int counter = 0;

			
			for (int i2 = 0; i2 < n; i2++) {
				
				String num1 = numbers[i2] + "";
				char c = num1.charAt(0);
				if (test.indexOf(c) >= 0) {
					test = test.replace(num1, "");
					counter++; 
					}

			}  // i2
			
			if (counter == n) { // kaikki numerot loytyi
				
				if (test.equals("")) { 
				
					loytyi = true;
					System.out.println("YES");
					System.out.println(primes.get(i1) );
				}

				
			}
			
		}  // i1
		
		if ((!loytyi) && (n > 1)) {
			System.out.println("NO");
		}
		
		}   // tapaus t




    }
}

Test details

Test 1

Group: 1, 2, 3

Verdict: ACCEPTED

input
10
1
0
1
1
...

correct output
NO
YES
11
YES
2
...

user output
NO
YES
11
YES
2
...

Test 2

Group: 2, 3

Verdict:

input
175
1
0
1
1
...

correct output
NO
YES
11
YES
2
...

user output
(empty)

Test 3

Group: 3

Verdict:

input
848
4
0 1 2 3
4
0 1 2 4
...

correct output
YES
10223
YES
4021
YES
...

user output
(empty)