Algorithm/Baekjoon Online Judge
[BOJ] 1978번
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