최대 1 분 소요

사용 언어: Python3

문제

소수 찾기

풀이

내 풀이

N = int(input())
numbers = list(map(int, input().split()))

cnt = 0
for num in numbers:
    if num == 1:
        continue
    if not any(num % x == 0 for x in range(2, num)):
        cnt += 1

print(cnt)
  • 테스트 케이스: 통과
  • 제출 결과
    스크린샷 2023-06-14 오후 1 00 42

다른 풀이

N = int(input())
numbers = list(map(int, input().split()))

cnt = 0
for num in numbers:
    if num <= 1:
        continue
    for i in range(2, int(num ** 1/2) + 1): # ✅ 범위 줄이기
      if num % i == 0: # 소수가 아니면 break
        break
    else: # for ~ else
      cnt += 1

print(cnt)
  • for문에서 범위를 줄일 수 있다면 줄이는게 좋다.
  • 내가 사용한 any() 방식은 중간에 break 할 수 없는 반면 for문은 break가 가능하기 때문에,
    코드가 길어지더라도 for문을 이용하는게 나아보인다.
  • 루트 계산에 아래처럼 sqrt()를 이용할 수도 있다.
    • from math import sqrt: math 라이브러리 임포트
    • for i in range(2, int(sqrt(num)) + 1): (num ** 1/2) 대신 sqrt(num) 사용


💛 개인 공부 기록용 블로그입니다. 👻

맨 위로 이동하기