-
[λ°±μ€] 17103 골λλ°ν νν°μ with PythonPS 2022. 7. 6. 16:55728x90λ°μν
π BOJ 17103 골λλ°ν νν°μ
π‘ 쑰건
- 골λλ°νμ μΆμΈ‘: 2λ³΄λ€ ν° μ§μλ λ μμμ ν©μΌλ‘ λνλΌ μ μλ€.
- μ§μ Nμ λ μμμ ν©μΌλ‘ λνλ΄λ ννμ 골λλ°ν νν°μ
μ΄λΌκ³ νλ€.
μ§μ Nμ΄ μ£Όμ΄μ‘μ λ, 골λλ°ν νν°μ μ κ°μλ₯Ό ꡬν΄λ³΄μ. λ μμμ μμλ§ λ€λ₯Έ κ²μ κ°μ νν°μ μ΄λ€.
- 첫째 μ€μ ν
μ€νΈ μΌμ΄μ€μ κ°μ T (1 β€ T β€ 100)κ° μ£Όμ΄μ§λ€.
κ° ν μ€νΈ μΌμ΄μ€λ ν μ€λ‘ μ΄λ£¨μ΄μ Έ μκ³ , μ μ Nμ μ§μμ΄κ³ , 2 < N β€ 1,000,000μ λ§μ‘±νλ€.
- μ μλ‘ , μμνλ³, μλΌν μ€ν λ€μ€μ 체 μ νμ λ¬Έμ
π₯ μμ€ μ½λ
from sys import stdin def prime_list(n): sieve = [False, False] + [True] * n m = int(n ** 0.5) for i in range(2, m + 1): if sieve[i]: for j in range(i + i, n, i): sieve[j] = False return sieve prime_nums = prime_list(10 ** 6) for _ in range(int(stdin.readline())): cnt = 0 num = int(stdin.readline()) for i in range((num // 2) + 1): if prime_nums[i] and prime_nums[num - i]: cnt += 1 print(cnt)
π μμ λ° μ€νκ²°κ³Ό
μμ
5 6 8 10 12 100
μ€νκ²°κ³Ό
1 1 2 1 6
β¨οΈ λ¬Έμ νμ΄
- μμνλ³ λ¦¬μ€νΈλ₯Ό λ§λ€μ΄ λ°ννλ ν¨μλ₯Ό ν΅ν΄μ μμ 리μ€νΈλ₯Ό μ»λλ€.
- κ° ν μ€νΈ μΌμ΄μ€λ§λ€ μ λ ₯λ°μ μ«μ num // 2 + 1μ ν΄λΉνλ μ«μκΉμ§ μννλ©΄μ 골λλ°ν νν°μ μ μλ₯Ό μΈμ΄ μΆλ ₯νλ€
λ°μν'PS' μΉ΄ν κ³ λ¦¬μ λ€λ₯Έ κΈ
[λ°±μ€] 1939 μ€λμ ν with Python (0) 2022.07.12 [λ°±μ€] 1068 νΈλ¦¬ with Python (0) 2022.07.07 [λ°±μ€] 16956 λλμ μ with Python (0) 2022.07.02 [λ°±μ€] 12920 νλ²ν λ°°λ 2 with Python (0) 2022.07.01 [λ°±μ€] 14890 κ²½μ¬λ‘ with Python (0) 2022.06.29