본문 바로가기

Problem Solving/Baekjoon Online Judge

<수학2> 1978번 소수 찾기 with 파이썬

 

문제

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

입력

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

출력

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

정답비율

48.291%

 

N = int(input())
lst = list(map(int, input().split()))
count = 0
for i in lst :
    if i == 1 :
        continue
    elif i == 2 :
        count += 1
    else :
        for j in range(2,i) :
            if i % j == 0 :
                break
            elif j == i-1 :
                count += 1
print(count)

 제한 시간이 있어서 반복문을 써도 될까 잠시 고민했지만, 1000이하의 자연수라는 제한은 컴퓨터에게 1초도 안걸릴 것 같아서 for구문으로 풀었다.

 

 1의 경우 count를 올리지 않았고 2의 경우 count를 올리도록 하였다, 그 외의 숫자는 2부터 자기 자신 직전 숫자까지 나눠서 나머지가 0이되는지 체크하였고, 0이 되면 바로 반복문을 탈출 시켰고, 자기 자신 직전숫자까지 왔음에도 나머지가 0이 되지 않은 경우는 count를 1올려주었다.

 

 

 

 


 

 

참고

 

1978번: 소수 찾기

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

www.acmicpc.net