mirae.kwak 2022. 3. 12. 13:27
728x90

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

 

1978번: 소수 찾기

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

www.acmicpc.net

 

Python3

if __name__ == '__main__':
    N = int(input())
    cnt = 0
    number = list(map(int, input().split()))

    for n in number:
        is_sosu = 1
        if n == 1:
            continue
        for i in range(2, n):
            if n % i == 0:
                is_sosu = 0
                break
        if is_sosu:
            cnt += 1
    print(cnt)

입력받을 수의 개수를 N에 저장하고 number라는 리스트에 수들을 저장했다. cnt는 소수의 개수를 셀 카운트 변수이다.

number안의 수들을 하나하나 보면서 소수인지 판별하는데 is_sosu라는 변수를 통해 소수면 1, 아니면 0으로 지정했다.

우선 수가 1일 경우 소수가 아니기때문에 이 경우에 대한 예외처리를 해주었다. 이후에 2부터 n-1까지 수들로 n을 나누어보면서 나머지가 0인경우 n은 소수가 아니기 때문에 is_sosu를 0으로 저장하고 반복문을 종료했다.

마지막에 is_sosu가 true라면 카운트 변수를 1 증가시켰다. 이후에 모든 리스트를 돌면서 판별이 끝나면 cnt변수를 출력했다.

728x90