| Task: | Alkuluvut |
| Sender: | TapaniS |
| Submission time: | 2025-09-27 22:38:34 +0300 |
| Language: | Java |
| Status: | READY |
| Result: | 17 |
| group | verdict | score |
|---|---|---|
| #1 | ACCEPTED | 17 |
| #2 | TIME LIMIT EXCEEDED | 0 |
| #3 | TIME LIMIT EXCEEDED | 0 |
| test | verdict | time | group | |
|---|---|---|---|---|
| #1 | ACCEPTED | 0.41 s | 1, 2, 3 | details |
| #2 | TIME LIMIT EXCEEDED | -- | 2, 3 | details |
| #3 | TIME LIMIT EXCEEDED | -- | 3 | details |
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: TIME LIMIT EXCEEDED
| input |
|---|
| 175 1 0 1 1 ... |
| correct output |
|---|
| NO YES 11 YES 2 ... |
| user output |
|---|
| (empty) |
Test 3
Group: 3
Verdict: TIME LIMIT EXCEEDED
| input |
|---|
| 848 4 0 1 2 3 4 0 1 2 4 ... |
| correct output |
|---|
| YES 10223 YES 4021 YES ... |
| user output |
|---|
| (empty) |
