#1978 ์†Œ์ˆ˜ ์ฐพ๊ธฐ๐Ÿ‘ฉโ€๐Ÿ”ง

sso0_zยท2023๋…„ 2์›” 26์ผ
0

๋ฐฑ์ค€

๋ชฉ๋ก ๋ณด๊ธฐ
31/40

๋ฌธ์ œ๐Ÿ“


๊ฒฐ๊ณผ๐Ÿ˜


์ฝ”๋“œ๐Ÿ’ป

n = int(input())
a = list(map(int,input().split()))
b = [] # ์†Œ์ˆ˜๊ฐ€ ์•„๋‹Œ ๊ฐ’์„ ์ €์žฅํ•˜๊ธฐ ์œ„ํ•œ ๋ฆฌ์ŠคํŠธํŠธ

for i in a:
  if i>1:
    for j in range(2,i):
      if i%j == 0:
        b.append(i)
  else:
    b.append(i)
        
c = set(a)-set(b)

c = list(c)

print(len(c))

ํ’€์ด๐Ÿ’ก

  1. ์ˆ˜์˜ ๊ฐœ์ˆ˜ n ์ž…๋žต
  2. ๋ฐฐ์—ด a ์ž…๋ ฅ
  3. ๋ฐ˜๋ณต๋ฌธ์„ ํ†ตํ•ด ์†Œ์ˆ˜๊ฐ€ ์•„๋‹Œ ๊ฐ’(1๊ณผ ์ž๊ธฐ์ž์‹  ์ด์™ธ์˜ ๋‹ค๋ฅธ ์ž์—ฐ์ˆ˜๋กœ ๋‚˜๋ˆ ์ง€๋Š” ๊ฐ’)์„ ๋ฐฐ์—ด b์— ์ €์žฅ
  4. 1์ธ ๊ฒฝ์šฐ๋Š” ๋”ฐ๋กœ ๋นผ์„œ ๋ฐฐ์—ด b์— ์ €์žฅํ•ด์ค€๋‹ค(1์€ ์†Œ์ˆ˜๊ฐ€ ์•„๋‹ˆ๋‹ค!)
  5. a์—์„œ ์†Œ์ˆ˜๊ฐ€ ์•„๋‹Œ ๊ฐ’๋“ค b๋ฅผ ๋นผ์ฃผ๊ธฐ ์œ„ํ•ด set ์ง‘ํ•ฉ ์—ฐ์‚ฐ์ž๋ฅผ ์ด์šฉ
    list๋Š” ๋นผ๊ธฐ๋ฅผ ์‚ฌ์šฉํ•  ์ˆ˜ ์—†์œผ๋ฏ€๋กœ set์„ ์ด์šฉํ•˜์—ฌ a-b๋ฅผ ์ง„ํ–‰, ์ดํ›„ list๋กœ ๋‹ค์‹œ ๋ณ€ํ™˜!
  6. ์†Œ์ˆ˜์ธ ๊ฐ’๋“ค์ด ๋ชจ์—ฌ์žˆ๋Š” ๋ฐฐ์—ด c์˜ ๊ธธ์ด๋ฅผ print!
n = int(input())
a = list(map(int,input().split()))

for i in a:
  if i>1:
    for j in range(2,i):
      if i%j == 0:
        a.remove(i)
  else:
    a.remove(i)
        

print(len(a))
  • ํ•ด๋‹น ๋ฐฉ๋ฒ•์œผ๋กœ ํ’€์—ˆ๋”๋‹ˆ ๋Ÿฐํƒ€์ž„ ์—๋Ÿฌ(ValueError)๊ฐ€ ๋ฐœ์ƒํ–ˆ๋‹ค. ์—†๋Š” ๊ฐ’์„ remove๋กœ ๋นผ์ฃผ๋ ค๊ณ  ํ•˜๋‹ˆ ์ƒ๊ธด ์—๋Ÿฌ...? ์•„๋‹ˆ๋ฉด list์™€ int ์‚ฌ์ด์˜ operation์ด ๋ถˆ๊ฐ€๋Šฅํ•ด์„œ..? ์ž˜ ๋ชจ๋ฅด๊ฒ ๋‹ค...

์ฐธ๊ณ ๐Ÿ™

๐Ÿ‘‰ [๋ฐฑ์ค€] 1978๋ฒˆ: ์†Œ์ˆ˜ ์ฐพ๊ธฐ - ํŒŒ์ด์ฌ


๋‹ค๋ฅธ ์‚ฌ๋žŒ์˜ ํ’€์ด๐Ÿค”

def prime_list(n):
  sieve=[True] * (n+1) # ์†Œ์ˆ˜๋Š” True, ๋‚˜๋จธ์ง€๋Š” False
  for i in range(2, int(n ** 0.5)+1):
    if sieve[i] == True:
      for j in range(i+i, n+1 , i): #๊ฐ„๊ฒฉ์„ i๋กœ ํ•ด์ฃผ์–ด, ์†Œ์ˆ˜์˜ ๋ฐฐ์ˆ˜๋ฅผ ์ง€์›Œ์ค€๋‹ค.
        sieve[j]=False
  return [i for i in range(2,n+1) if sieve[i]==True]

# n์˜ ์ˆซ์ž ๋ฒ”์œ„์—์„œ ํ•ฉ์„ฑ์ˆ˜๋ฅผ ์ง€์›Œ๋‚˜๊ฐ€๋ฉด์„œ, ์†Œ์ˆ˜๋ฅผ ๊ตฌํ•ด์ฃผ๋Š” ๋ฐฉ๋ฒ•์ด๋‹ค. 
  • ์—๋ผํ† ์Šคํ…Œ๋„ค์Šค์˜ ์ฒด : ๋ฒ”์œ„์—์„œ ํ•ฉ์„ฑ์ˆ˜๋ฅผ ์ง€์šฐ๋Š” ๋ฐฉ์‹์œผ๋กœ ์†Œ์ˆ˜๋ฅผ ์ฐพ๋Š” ๋ฐฉ๋ฒ•
    ์†Œ์ˆ˜๋ฅผ ์ฐพ๋Š” ๋ฐฉ๋ฒ• ์ค‘์— ๊ฐ€์žฅ ํšจ์œจ์ด ์ข‹์€ ๋ฐฉ๋ฒ•์ด๋‹ค.
n = int(input())
numbers = map(int, input().split())
sosu = 0
for num in numbers:
    error = 0
    if num > 1 :
        for i in range(2, num):  # 2๋ถ€ํ„ฐ n-1๊นŒ์ง€
            if num % i == 0:
                error += 1  # 2๋ถ€ํ„ฐ n-1๊นŒ์ง€ ๋‚˜๋ˆˆ ๋ชซ์ด 0์ด๋ฉด error๊ฐ€ ์ฆ๊ฐ€
        if error == 0:
            sosu += 1  # error๊ฐ€ ์—†์œผ๋ฉด ์†Œ์ˆ˜.
print(sosu)
  • ๋‚˜์™€ ๋Œ€๋žต์ ์ธ ํ‹€์€ ๋น„์Šทํ•˜๋‹ค. 1๊ณผ ์ž๊ธฐ ์ž์‹ ์„ ์ œ์™ธํ•œ ์ˆซ์ž๋กœ ๋‚˜๋ˆ„์—ˆ์„ ๋•Œ, 0์œผ๋กœ ๋‚˜๋ˆ„์–ด ๋–จ์–ด์ง€๋ฉด error ๋ณ€์ˆ˜์— 1์„ ๋”ํ•ด์ค€๋‹ค. ์ดํ›„ error ๋ณ€์ˆ˜๊ฐ€ 0์ด๋ฉด 1๊ณผ ์ž๊ธฐ ์ž์‹ ์„ ์ œ์™ธํ•œ ์ˆซ์ž๋กœ๋Š” ๋‚˜๋ˆ„์–ด ๋–จ์–ด์ง€์ง€ ์•Š์€ ๊ฒƒ์ด๋ฏ€๋กœ ์†Œ์ˆ˜๊ฐ€ ๋œ๋‹ค.
  • ์†Œ์ˆ˜์ธ ๊ฒฝ์šฐ, sosu ๋ณ€์ˆ˜์— 1์„ ์ถ”๊ฐ€ํ•ด์„œ for๋ฌธ์ด ๋ชจ๋‘ ๋๋‚œ ํ›„ sosu ๋ณ€์ˆ˜๋ฅผ ์ถœ๋ ฅํ•œ๋‹ค.
profile
์ฑ„์†Œ

0๊ฐœ์˜ ๋Œ“๊ธ€