๋ฐฑ์ค€/Python

[Python] ๋ฐฑ์ค€ 1978๋ฒˆ

๋‹ค๋ธ”๐Ÿ’ 2022. 6. 25. 22:43

1978๋ฒˆ. ์†Œ์ˆ˜ ์ฐพ๊ธฐ (silver 4)

์ฃผ์–ด์ง„ ์ˆ˜ N๊ฐœ ์ค‘์—์„œ ์†Œ์ˆ˜๊ฐ€ ๋ช‡ ๊ฐœ์ธ์ง€ ์ฐพ์•„์„œ ์ถœ๋ ฅํ•˜๋Š” ํ”„๋กœ๊ทธ๋žจ์„ ์ž‘์„ฑํ•˜์‹œ์˜ค.

 

์ž…๋ ฅ

์ฒซ ์ค„์— ์ˆ˜์˜ ๊ฐœ์ˆ˜ N์ด ์ฃผ์–ด์ง„๋‹ค. N์€ 100์ดํ•˜์ด๋‹ค. 

๋‹ค์Œ์œผ๋กœ N๊ฐœ์˜ ์ˆ˜๊ฐ€ ์ฃผ์–ด์ง€๋Š”๋ฐ ์ˆ˜๋Š” 1,000์ดํ•˜์˜ ์ž์—ฐ์ˆ˜์ด๋‹ค.

 

์ถœ๋ ฅ

์ฃผ์–ด์ง„ ์ˆ˜๋“ค ์ค‘ ์†Œ์ˆ˜์˜ ๊ฐœ์ˆ˜๋ฅผ ์ถœ๋ ฅํ•œ๋‹ค.

 

์˜ˆ์ œ ์ž…๋ ฅ 1

4
1 3 5 7

์˜ˆ์ œ ์ถœ๋ ฅ 1

3

 

 

 

 

 

n = int(input()) # ์ž…๋ ฅ๋ฐ›์„ ์ˆซ์ž์˜ ๊ฐœ์ˆ˜
numbers = list(map(int, input().split(' '))) # ๊ณต๋ฐฑ์œผ๋กœ ์ˆซ์ž ๊ตฌ๋ถ„
cnt = 0 

for i in numbers:
    prime = 0 
    if i == 1: # 1์€ ์†Œ์ˆ˜๊ฐ€ ์•„๋‹ˆ๊ธฐ ๋•Œ๋ฌธ์— ๋„˜์–ด๊ฐ„๋‹ค
        continue
    for j in range(2, i+1):
        if i % j == 0:
            prime += 1  # prime == 1 ์ด๋ฉด ์†Œ์ˆ˜
    if prime == 1:
        cnt += 1        # ์†Œ์ˆ˜ ๊ฐœ์ˆ˜ ์นด์šดํŠธ
        
print(cnt)

 

input์„ ์‚ฌ์šฉํ•ด์„œ ์ž…๋ ฅ๋ฐ›์„ ์ˆซ์ž์˜ ๊ฐœ์ˆ˜๋ฅผ n์— ์ €์žฅํ•ด์ค€๋‹ค.

๊ทธ ๋‹ค์Œ numbers์— ๊ณต๋ฐฑ์„ ๋‘๊ณ  ์ˆซ์ž๋ฅผ ์ž…๋ ฅ๋ฐ›์€ ๋‹ค์Œ, ๊ทธ ์ˆซ์ž๋ฅผ listํ˜•ํƒœ๋กœ ์ €์žฅํ•ด์ค€๋‹ค.

numbers ์•ˆ์— ์žˆ๋Š” ์›์†Œ๋“ค์„ i๋ผ ํ•˜๊ณ  ์ด์— ๋Œ€ํ•˜์—ฌ for๋ฌธ์„ ์‚ฌ์šฉํ•œ๋‹ค.

prime์˜ ๊ธฐ๋ณธ๊ฐ’์„ 0 (์†Œ์ˆ˜๊ฐ€ ์•„๋‹˜)์œผ๋กœ ์ €์žฅํ•ด์ฃผ๊ณ  ์›์†Œ๊ฐ€ 1์ด๋ผ๋ฉด ์†Œ์ˆ˜๊ฐ€ ์•„๋‹ˆ๊ธฐ ๋•Œ๋ฌธ์— continue๋ฌธ์„ ์‚ฌ์šฉํ•ด์ค€๋‹ค.

๊ทธ ์™ธ์˜ ๊ฒฝ์šฐ for๋ฌธ์„ ์‚ฌ์šฉํ•ด์„œ 2๋ถ€ํ„ฐ i๊นŒ์ง€์˜ ๋ฒ”์œ„์—์„œ i%j๊ฐ€ 0์ธ ๊ฒฝ์šฐ, ๋‚˜๋ˆ„์–ด์ง€๋Š” ์ˆ˜๊ฐ€ ์žˆ์œผ๋‹ˆ ์†Œ์ˆ˜๊ฐ€ ์•„๋‹ˆ๊ฒŒ ๋˜๋ฏ€๋กœ prime์— 1์„ ๋”ํ•ด์ค€๋‹ค.

๋งˆ์ง€๋ง‰์œผ๋กœ for๋ฌธ ๋ฐ–์— if๋ฌธ์„ ์‚ฌ์šฉํ•ด์„œ prime == 1, ์ฆ‰ ์†Œ์ˆ˜๋ผ๋ฉด cnt์— 1์”ฉ ๋”ํ•ด์„œ ์†Œ์ˆ˜ ๊ฐœ์ˆ˜๋ฅผ ์ €์žฅํ•˜๊ฒŒ ํ•ด์ฃผ์—ˆ๊ณ , cnt๋ฅผ ์ถœ๋ ฅํ•ด์ฃผ์—ˆ๋‹ค.

 

'๋ฐฑ์ค€ > Python' ์นดํ…Œ๊ณ ๋ฆฌ์˜ ๋‹ค๋ฅธ ๊ธ€

[Python] ๋ฐฑ์ค€ 11866๋ฒˆ  (0) 2022.07.04
[Python] ๋ฐฑ์ค€ 1748๋ฒˆ  (0) 2022.07.04
[Python] ๋ฐฑ์ค€ 1764๋ฒˆ  (0) 2022.06.22
[Python] ๋ฐฑ์ค€ 11650๋ฒˆ  (0) 2022.05.31
[Python] ๋ฐฑ์ค€ 1920๋ฒˆ  (0) 2022.05.31