본문 바로가기
백준(Python) 풀이

백준 1978번. 소수 찾기 (Python / 파이썬)

by yewonnie 2022. 4. 29.

문제

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

입력

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

출력

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

문제 풀이

N개의 수가 주어졌을 때 소수가 몇 개인지 찾는 문제 입니다.

소수란, 1과 자기 자신만을 약수로 갖는 수 입니다.

 

따라서 주어진 수를 하나씩 확인하며

소수인지 아닌지 판별해주었습니다.

1은 소수가 아니므로 주어진 수가 1보다 크다면 

2부터 주어진 수보다 1 작은 수까지 나눈 나머지를 구해주었습니다.

만약 나머지가 0이라면 다른 약수가 존재한다는 것입니다.

따라서 check 변수를 False로 만들어주어 소수가 아님을 표시해주었습니다.

 

만약 check가 True라면 소수라는 것이므로 개수를 세어주었습니다.

위 과정을 모두 반복한 뒤 개수를 출력하면 소수의 개수를 할 수 있습니다.


My Code

n = int(input()) # 주어진 수의 개수

nums = list(map(int,input().split())) # 주어진 수

count = 0 # 소수의 개수를 셀 변수
for i in nums:
    check = True # 소수인지 판별할 변수
    if i > 1: # 주어진 수가 1보다 크면
        for j in range(2, i): # 주어진 수보다 작은 수들로
            if i % j == 0:    # 나눈 나머지가 0이라면
                check = False # 소수가 아니므로 False
        if check: # True이면 소수이므로
            count += 1 # 개수 세어줌

print(count)

댓글