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 를 증가 하여 출력하는 방식으로 풀었다.
지금 블로그를 작성하면서 보니.. 수정해야할 부분이 몇몇 보인다..
'Backjoon' 카테고리의 다른 글
| Backjoon problem 1181 단어 정렬 - python (0) | 2023.05.18 |
|---|---|
| Backjoon problem 10898 수 정렬하기 3- python (0) | 2023.05.18 |
| Backjoon problem 9506 약수들의 합 - python (0) | 2023.05.04 |
| Backjoon problem 2501 약수 구하기 - python (0) | 2023.05.04 |
| BackJoon Problem 5086 배수와 약수 -Python (0) | 2023.05.04 |