BOJ 1978. 소수 찾기 (Python)

2021. 2. 15. 11:51Problem Solving/BOJ

BOJ 1978. 소수 찾기

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

 

1978번: 소수 찾기

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

www.acmicpc.net

풀이

입력 받은 수들을 모두 한번씩 소수인지 검사 하면 된다.

is_prime()함수는 간단하다.

def is_prime(n) -> bool:
    if n == 1:
        return False

    i = 2
    while i < n:
        if n % i == 0:
            return False
        else:
            i += 1
    return True
  1. 1은 소수가 아니므로 False 리턴
  2. 무언가로 나눠지면 소수가 아니므로 False 리턴 (자기 자신과는 무조건 나누어 떨어진다! 그러므로 루프를 자기 자신보다 작을때까지 돌린다.)

소스코드

import sys

def is_prime(n) -> bool:
    if n == 1:
        return False

    i = 2
    while i < n:
        if n % i == 0:
            return False
        else:
            i += 1
    return True

N = int(input())
nums = map(int, sys.stdin.readline().split())

count = 0
for n in nums:
    if is_prime(n) == True:
        count += 1

print(count)

반응형

'Problem Solving > BOJ' 카테고리의 다른 글

BOJ 10816. 숫자 카드 2 (Python)  (0) 2021.02.16
BOJ 9012. 괄호 (Python)  (0) 2021.02.16
BOJ 1920. 수 찾기 (Python)  (0) 2021.02.15
BOJ 11650. 좌표 정렬하기 (Python)  (0) 2021.02.15
BOJ 10814. 나이순 정렬 (Python)  (0) 2021.02.10