-
[λ°±μ€] 1124 μΈλνλΌμ with PythonPS 2023. 4. 11. 15:20728x90λ°μν
π BOJ 1124 μΈλνλΌμ
π‘ 쑰건
μμ°μ Xλ₯Ό μμΈμλΆν΄νλ©΄, κ³±ν΄μ Xκ° λλ μμμ λͺ©λ‘μ μ»μ μ μλ€.
μλ₯Ό λ€μ΄, 12 = 2 Γ 2 Γ 3μ΄λ€. 1μ μμκ° μλλ€.μ΄λ€ μ Xλ₯Ό μμΈμλΆν΄ ν΄μ ꡬν μμμ λͺ©λ‘μ κΈΈμ΄κ° μμμ΄λ©΄, κ·Έ μλ₯Ό μΈλνλΌμ μ΄λΌκ³ νλ€.
12λ λͺ©λ‘μ ν¬ν¨λ μμμ κ°μκ° 3κ°μ΄κ³ , 3μ μμμ΄λ 12λ μΈλνλΌμμ΄λ€.
λ μ μ Aμ Bκ° μ£Όμ΄μ‘μ λ, Aλ³΄λ€ ν¬κ±°λ κ°κ³ , Bλ³΄λ€ μκ±°λ κ°μ μ μ μ€μμ μΈλνλΌμμΈ κ²μ κ°μλ₯Ό ꡬνλ λ¬Έμ
2 β€ A β€ B β€ 100,000
μλΌν μ€ν λ€μ€μ 체, μν, μμνμ μ νμ λ¬Έμ
π μμ λ° μ€νκ²°κ³Ό
μμ 1
2 10
μ€νκ²°κ³Ό 1
5
μμ 2
100 105
μ€νκ²°κ³Ό 2
2
μμ 3
17 17
μ€νκ²°κ³Ό 3
0
μμ 4
123 456
μ€νκ²°κ³Ό 4
217
β¨οΈ λ¬Έμ νμ΄
μλΌν μ€ν λ€μ€μ 체λ₯Ό μ΄μ©ν΄ μμλ₯Ό νλ¨ν μ μλ is_prime 리μ€νΈμ νμ λ μμλ₯Ό λ΄μ primes 리μ€νΈλ₯Ό λ§λ λ€.
0κ³Ό 1μ μμκ° μλκΈ°μ, is_prime 리μ€νΈμμ λ°λμ 0 κ°μ λ£μ΄μ€μΌ νλ€.
A λΆν° B κΉμ§μ λ²μλ₯Ό μννλ©΄μ, λ§λ€μ΄ λμ primes λ°°μ΄λ μννλ€.
A λΆν° B κΉμ§μ λ²μμ μ«μλ₯Ό primes λ°°μ΄μ μ«μλ‘ λλλ©΄μ 1μ μ μΈν μμμ κ°μλ₯Ό μΌλ€.(3)μμ λμ¨ μ«μκ° is_primeμμ μμλ‘ νλ³μ΄ λλ€λ©΄ res += 1
A λΆν° B κΉμ§ μνκ° λλ¬λ€λ©΄, res λ₯Ό λ°νν ν μΆλ ₯νλ€.
π₯ μμ€ μ½λ
from sys import stdin a, b = map(int, stdin.readline().split()) is_prime = [1 for i in range(100001)] primes = [] is_prime[0:1] = 0, 0 def prime_checker(): for i in range(2, 100000): if is_prime[i] == 1: primes.append(i) temp, length = i + i, len(is_prime) while length > temp: is_prime[temp] = 0 temp += i def check_under_prime(a, b): prime_checker() res = 0 for i in range(a, b + 1): cnt, idx = 0, 0 while 1: if i % primes[idx] == 0: cnt += 1 i //= primes[idx] if i == 1: break else: idx += 1 if is_prime[cnt] == 1: res += 1 return res print(check_under_prime(a, b))
λ°μν'PS' μΉ΄ν κ³ λ¦¬μ λ€λ₯Έ κΈ
[λ°±μ€] 12871 무ν λ¬Έμμ΄ with Python (0) 2023.04.13 [λ°±μ€] 5363 μλ€ with Python (0) 2023.04.13 [λ°±μ€] 7600 λ¬Έμκ° λͺκ°€κΉ with Python (0) 2023.04.11 [λ°±μ€] 24480 μκ³ λ¦¬μ¦ μμ - κΉμ΄ μ°μ νμ 2 with Python (0) 2023.04.10 [λ°±μ€] 10707 μλμκΈ with Python (0) 2023.04.10