Task: | Alkuluvut |
Sender: | pupukani |
Submission time: | 2025-09-28 17:41:08 +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 # onko alkuluku ja onko kaikki numerot kaytetty def on_ok(luku, numerot): if len(luku) > 0 and on_alkuluku(int(luku)): for n in numerot: if n not in luku: return False return True return False 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_ok(''.join(luku), numerot): 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_ok(luku, numerot): 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) |