| Task: | Alkuluvut |
| Sender: | pupukani |
| Submission time: | 2025-09-28 17:42:55 +0300 |
| Language: | Python3 (PyPy3) |
| 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.05 s | 1, 2, 3 | details |
| #2 | TIME LIMIT EXCEEDED | -- | 2, 3 | details |
| #3 | TIME LIMIT EXCEEDED | -- | 3 | details |
Code
import math
alkuluvut = [2]
ei_alkuluvut = [1]
def on_alkuluku(luku):
if luku in alkuluvut:
return True
if luku in ei_alkuluvut:
return False
for i in range(2, int(math.sqrt(luku) + 1)):
if luku % i == 0:
ei_alkuluvut.append(luku)
return False
alkuluvut.append(luku)
return True
def permutaatiocheck(luku_str, numerot):
if len(luku_str) < len(numerot):
return 0
luku = list(luku_str)
for i in range(len(luku)):
for j in range(i + 1, len(luku)):
luku[i], luku[j] = luku[j], luku[i]
if on_alkuluku(int(''.join(luku))):
return ''.join(luku)
luku[i], luku[j] = luku[j], luku[i]
return 0
def tee_alkuluku(luku, numerot):
if len(luku) > 0 and int(luku) > 10 ** 16:
return 0
if on_alkuluku(int(luku)):
return luku
for i in range(len(numerot)):
check = permutaatiocheck(luku, numerot)
luku = luku + numerot[(i + len(luku)) % len(numerot)]
if check != 0:
return check;
ret = tee_alkuluku(luku, numerot)
if ret != 0:
return ret;
luku = luku[:-1]
return 0
def main():
t = int(input())
tuloste = ""
for i in range(t):
k = int(input())
rivi = input()
numerot = rivi.replace(" ", "");
alkuluku = int(tee_alkuluku(numerot, numerot))
if alkuluku == 0:
tuloste = tuloste + "NO\n"
else:
tuloste = tuloste + "YES\n"
tuloste = tuloste + str(alkuluku) + "\n";
print(tuloste)
main()
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) |
