๋ฐฑ์ค-๋จ๊ณ๋ณ๋ก ํ์ด๋ณด๊ธฐ-'๊ธฐ๋ณธ ์ํ 2' ํํธ ๋ฌธ์ ๋ค ์ค ๊ธฐ์ตํด์ผ ํ ๊ฐ๋ ๋ฐ ๋ฌธ์ ๋ค์ ๊ธฐ๋กํฉ๋๋ค.
2022.01.17
:2๋ถํฐ X-1๊น์ง ๋ชจ๋ ๋๋ ์ X๊ฐ ์์์ธ์ง ํ๋ณํ๋ ๋ฌธ์ 1
n = int(input())
num_list = list(map(int, input().split()))
cnt = 0
for i in num_list:
if i != 1: # 1์ ์์ ์๋
for j in range(2, i): # range: 2 ~ i-1
if i % j == 0: # ์์ ์๋ ๊ฒฝ์ฐ
break
else: # i๊ฐ 1๊ณผ ์์ i๋ฅผ ์ ์ธํ ์ด๋ ํ j๋ก๋ ๋๋ ์ง์ง ์๋ ๊ฒฝ์ฐ = ์์
cnt += 1
print(cnt)
2022.01.17
:2๋ถํฐ X-1๊น์ง ๋ชจ๋ ๋๋ ์ X๊ฐ ์์์ธ์ง ํ๋ณํ๋ ๋ฌธ์ 2
m = int(input())
n = int(input())
arr = [] # ๋น ๋ฐฐ์ด
for i in range(m, n+1): # range: m ~ n
if i == 1: # 1์ ์์ ์๋
pass
elif i == 2: # 2๋ ์์์
arr.append(i)
else:
for j in range(2, i): # range: 2 ~ i-1
if i % j == 0: # ๋ฌด์ธ๊ฐ๋ก ๋๋ ์ง๋ i๋ ์์๊ฐ ์๋
break
elif j == i-1: # j๊ฐ ๋ฒ์ ๋์ธ i-1๊น์ง ๋๋ฌํ๋ค๋ฉด
arr.append(i) # i๋ฅผ ์์ ๋ฐฐ์ด์ ์ถ๊ฐ
if len(arr) == 0:
print('-1')
else:
print(sum(arr))
print(min(arr))
2022.01.17
:N์ ์์ธ์๋ถํดํ๋ ๋ฌธ์
n = int(input())
while n != 1: # n์ด 1์ด ๋ ๋ ๊น์ง ๋ฐ๋ณต
for i in range(2, n+1): # ๋ฒ์: 2 ~ n
if(n % i == 0): # n์ 2๋ถํฐ ์์ฐจ์ ์ผ๋ก ๋๋๊ธฐ
print(i) # n์ด ๋๋จธ์ง ์์ด ๋๋ ์ง๋ฉด ์ถ๋ ฅ
n = n // i
break
2022.01.20
:์๋ผํ ์คํ ๋ค์ค์ ์ฒด๋ก ํ์ด ๋ด ์๋ค.
m, n = map(int, input().split())
for i in range(m, n+1):
if i == 1:
continue
for j in range(2, int(i ** 0.5)+1): # range(2, i) -> ์๊ฐ์ด๊ณผ ๋ธ.
if i % j == 0:
break
else:
print(i)
-->
โฐ ๊ทธ๋์ '์๋ผํ ์คํ ๋ค์ค์ ์ฒด'๋ฅผ ํ์ฉํ์ฌ ๋ฌธ์ ๋ฅผ ํ๋ฉด ์๊ฐ์ด ๋ง์ด ๋จ์ถ๋๋ค. (260ms)
์๋ผํ ์คํ ๋ค์ค์ ์ฒด
: ๊ณ ๋ ๊ทธ๋ฆฌ์ค ์ํ์ ์๋ผํ ์คํ ๋ค์ค๊ฐ ๋ฐ๊ฒฌํ ์์๋ฅผ ์ฐพ๋ ๋ฐฉ๋ฒ.
์์๋ฅผ ๊ตฌํด์ผ ํ๋ ๊ตฌ๊ฐ์ ์(m~n) ๊ฐ์ด๋ฐ n์ ์ ๊ณฑ๊ทผ๋ณด๋ค ์์ ์์์ ๋ฐฐ์๋ฅผ ์ง์ฐ๊ณ ๋จ๋ ์๋ ๋ชจ๋ ์์๊ฐ ๋จ.
์๋ฅผ ๋ค์ด ๊ฐ์ฅ ์์ ์์์ธ 2๋ถํฐ ์์ํด์, 2์ ๋ฐฐ์(2, 4, 6 ...)๋ฅผ ๋ชจ๋ ์ง์ฐ๊ณ , ์ง์์ง์ง ์์ ๋จ์ ์ ์ค์์ ๋ค์ ์์์ธ 3์ ๋ฐฐ์(3, 9, 15 ...)๋ฅผ ์ง์ -> ๋ฒ์ ๋ด์์ ๊ณ์ ๋ฐ๋ณตํด ๋๊ฐ๋ฉด ์์๋ง ๋จ์.
m, n = map(int, input().split())
def isprime(m, n):
n += 1
prime = [True] * n # ์ด๊ธฐํ: n๊ฐ ์์์ True ์ค์ (์์๋ก ๊ฐ์ฃผ)
# n์ ์ต๋ ์ฝ์๊ฐ sqrt(n) ์ดํ์ด๋ฏ๋ก i=sqrt(n)๊น์ง ๊ฒ์ฌ
for i in range(2, int(n**0.5)+1):
if prime[i]: # i๊ฐ ์์์ธ ๊ฒฝ์ฐ
for j in range(2*i, n, i): # i ์ดํ i์ ๋ฐฐ์๋ค์ False ํ์
prime[j] = False
for i in range(m, n):
if i > 1 and prime[i] == True:
print(i)
isprime(m, n)
2022.01.21
:์์ ์์ฉ ๋ฌธ์ 1
def sosu(num):
if num == 1:
return False
for i in range(2, int(num**0.5)+1):
if num % i == 0:
return False
return True
# ๋ฌธ์ ์์ ์ ํํ ๋ฒ์: n <= 123,456 -> ์ต๋๋ฅผ ๋ฒ์๋ฅผ 2n <= 246,912๋ก ๋ฏธ๋ฆฌ ๊ณ์ฐ
sosu_range = list(range(2, 246912))
sosu_list = [] # ์์๋ด์ ๋น ๋ฆฌ์คํธ
for i in sosu_range: # 2 <= n <= 246,912
if sosu(i): # ์์์ ํด๋นํ๋ฉด ์์ ๋ฆฌ์คํธ์ ์ถ๊ฐ
sosu_list.append(i)
while(1):
cnt = 0
n = int(input())
if n == 0: # 0 ์
๋ ฅ์ ์
๋ ฅ ์ข
๋ฃ
break
for i in sosu_list:
if n < i <= 2*n: # ์์๋ฅผ ๋ด์ ๋ฆฌ์คํธ๊ฐ ๋ฒ์ ๋ด์ ์์ผ๋ฉด ์นด์ดํธ
cnt += 1
print(cnt)
์๊ฐ์ด๊ณผ ๋ฌธ์ ๋ฅผ ํด๊ฒฐํ๊ธฐ ์ํด n์ ์ต๋ ๋ฒ์๋ฅผ ๋ฏธ๋ฆฌ ๊ณ์ฐํ์ฌ ์ง์ ํด์ฃผ์๋ค.
๋ํ, ์์๋ฅผ ๊ตฌํ๋ ํจ์๋ฅผ ๋ฐ๋ก ๋ง๋ค์๊ณ , ๋น ๋ฆฌ์คํธ๋ฅผ ์ ์ธํ์ฌ ์์๋ก ํ๋จํ์ ๋ ๋ง๋ค ๋น ๋ฆฌ์คํธ์ ๊ฐ์ ์ถ๊ฐํด์ฃผ๊ณ ์ด๋ฅผ ์นด์ดํธํด์ฃผ์๋ค.
2022.01.24
:์์ ์์ฉ ๋ฌธ์ 2
import sys
def sosu(num):
for i in range(2, int(pow(num, 0.5)) + 1): # pow(num, 0.5) = num**0.5
if num % i == 0: # ์์๊ฐ ์๋ ๊ฒฝ์ฐ
return False
if num == 1: # 1์ ํญ์ ์์๊ฐ ์๋
return False
return True # ์์ ๊ฒฝ์ฐ ์ธ์๋ ์์๋ผ๊ณ ํ๋จ
T = int(sys.stdin.readline())
for i in range(T):
n = int(sys.stdin.readline())
for num in range(n // 2, 0, -1): # n//2 ~ 0 ๊น์ง, -1์ฉ ์์์ง๋๋ก
if sosu(num) and sosu(n-num):
print(num, n-num)
break
๊ฐ ์ ๋ ฅ๋ฐ์ ๋ int(input()) ๋ณด๋ค int(sys.stdin.readline() ์ฌ์ฉํ๋๊ฒ ์๊ฐ 3๋ฐฐ์ ๋ ๋ ๋จ์ถ๋จ.
pow()
: pow(num, 0.5) = num**0.5 ์ฆ, ์ ๊ณฑ์ ํํํ ๋ ์ฌ์ฉํ๋ ํจ์.