코딩/백준

[백준] 1978번 소수 찾기 파이썬 풀이 코딩테스트 연습 기본 수학2 실버4

thisisjade 2022. 1. 14. 20:38
728x90

문제

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

 

입력

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

 

출력

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

 

예제 입력 1

4
1 3 5 7

 

예제 출력 1

3

 

문제를 풀다가 코드가 너무 길어지긴하였지만 한번에 답 맞췄으니까 성공!

num = int(input())
target = list(map(int, input().split()))
cnt = 0

for i in range(num):
    if target[i] == 1:
        continue
    elif target[i] == 2:
        cnt +=1
    else:
        tmp = 1
        while True:
            tmp +=1
            if target[i]/tmp == target[i]//tmp and target[i] != tmp:
                break
            elif target[i] == tmp:
                cnt +=1
                break

print(cnt)

 

1과 2를 따로 처리해줘야한다고 생각을했는데 코드다시보니까 2는 따로 안빼줘도 됐었네요

다른방식으로 코드를 작성하다가 바꿔서 저 부분을 체크하지 못한것 같습니다!

 

 

 

 

728x90