본문 바로가기
Backjoon

Backjoon problem 1987 소수 찾기 - python

by ddahu 2023. 5. 4.

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

 

1978번: 소수 찾기

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

www.acmicpc.net

 

  • 입력과 출력

  • 소스코드
def isPrime(num):
    return [False for i in range(2,num) if num % i == 0 ]
    


N = int(input())
lst = list(map(int,input().split()))
cnt = 0

for i in lst:
    if i == 1:
        continue
    elif isPrime(i) == []:
        cnt +=1
print(cnt)
  • 해설

소수는 1보다 큰 자연수 중 1과 자기자신만을 약수로 가지는 수 라고 정의되어있다.

 

소수를 구하는 문제는 코딩테스트에서도 자주나오는 걸로 알고있고 코딩연습사이트에서 자주 나오는 문제이다.

 

이 문제에서는 isPrime 이라는 소수 판별 함수를 따로 만들었고 

1 은 소수가 아니므로 첫 반복에서 판별하여 제외

isPrime() 함수에 들어가서 [] 이면 소수 이므로 cnt 를 증가 하여 출력하는 방식으로 풀었다.

 

지금 블로그를 작성하면서 보니..  수정해야할 부분이 몇몇 보인다..