Baekjoon 문제 풀기 (1978번 : 소수 찾기) Python
1978번 : 소수 찾기
1. 문제읽기
에라토스테네스의 체!
이미 1929번:소수구하기문제를 풀어봐서 그런지 쉽게 풀 수 있었다.
동일하게 에라토스테네스의 체 방법을 이용해서 풀면 된다.
2. 제출 코드
소수인지 아닌지 판별하는 isPrime 함수를 만든 뒤, 리턴 값을 이용하여 몇 개의 소수가 존재하는지 찾아냈다.
sq_arr 리스트에 range함수 뒤에 +1을 안해줘서 sq가 포함이 안되어서 계속 오답이 나왔다.
range 함수에서 뒤에 번호는 포함되지 않는다는 아주 기초적인 사실을 틀리면 안되겠다고 생각했다.
n = int(input())
arr = list(map(int, input().split()))
def isPrime(num):
if num == 1:
return 0
if 1 < num < 4:
return 1
sq = int(num**0.5)
sq_arr = list(range(2, sq+1))
for s in sq_arr:
if num%s == 0:
return 0
return 1
ans = []
for i in arr:
ans.append(isPrime(i))
print(ans.count(1))
3. 공부할 것
리턴값을 1과 0으로 받지 않아도, boolean 값으로 받아서 for문을 돌려줄 때 true라면 count +1 을 해주는 식으로 푸는 방법도 있었다.
댓글남기기