본문 바로가기
백준/수학

[백준🥈5] #1978 소수 찾기 (Python)

by 똥먹는낙타 2023. 1. 9.
728x90
반응형

https://www.acmicpc.net/problem/1978

 

1978번: 소수 찾기

첫 줄에 수의 개수 N이 주어진다. N은 100이하이다. 다음으로 N개의 수가 주어지는데 수는 1,000 이하의 자연수이다.

www.acmicpc.net

 

문제

주어진 수 N개 중에서 소수가 몇 개인지 찾아서 출력하는 프로그램을 작성하시오.

입력

첫 줄에 수의 개수 N이 주어진다. N은 100이하이다. 다음으로 N개의 수가 주어지는데 수는 1,000 이하의 자연수이다.

출력

주어진 수들 중 소수의 개수를 출력한다.

예제 입력 1

4
1 3 5 7

예제 출력 1

3

 

✔️ Code

n = int(input())
nums = list(map(int, input().split()))
result = 0

for num in nums:
    cnt = 0
    if num > 1:
        for i in range(2, num):
            if num % i == 0:
                cnt += 1
        
        if cnt == 0:
            result += 1
    
print(result)

✏️ Comment

가장 기본 중의 기본 소수찾기..... 근데 잘 모르겠어서 결국 구글링해서 어떤 방식으로 푸는지 알아봄. ㅋㅋ ㅋ 나는 구현, 수학 문제에 특히 약하다.... 토요일에 첫 코테 보고 내가 기본적인 코딩 능력도 많이 부족하다는 것을 깨닫고 solved.ac class 2부터 순서대로 격파하면서 실력을 다시 쌓아보려고 한다..... 이번주 금요일까지 class 2를 깨는 것이 목표다.....

문제 풀이는 간단하다. 주어진 숫자 num에 대해서 1을 제외하고 2부터 num-1 까지 for문을 돌면서 num % i를 수행했을 때 나눠지면 소수가 아니므로 소수가 아닌 숫자들의 개수를 cnt로 세어서 마지막에 빼주면 된다.

728x90
반응형

댓글