728x90
반응형
https://www.acmicpc.net/problem/1978
1978번: 소수 찾기
첫 줄에 수의 개수 N이 주어진다. N은 100이하이다. 다음으로 N개의 수가 주어지는데 수는 1,000 이하의 자연수이다.
www.acmicpc.net
문제
주어진 수 N개 중에서 소수가 몇 개인지 찾아서 출력하는 프로그램을 작성하시오.
입력
첫 줄에 수의 개수 N이 주어진다. N은 100 이하이다. 다음으로 N개의 수가 주어지는데 수는 1,000 이하의 자연수이다.
출력
주어진 수들 중 소수의 개수를 출력한다.
예제 입력 1
4
1 3 5 7
예제 출력 1
3
풀이
설명
- 소수
- 약수가 1과 자기 자신 밖에 없는 수
- N이 소수가 되려면, 2보다 크거나 같고, N-1보다 작거나 같은 자연수로 나누어 떨어지면 안 된다.
- 특정 수가 그 수보다 작거나 같은 자연수로 계속 나누었을 때, 0이 아닌 경우만 True를 반환하여 primeNum을 1씩 증가한다.
- 이때, prime 함수 안의 return True 위치 조심하기
코드
N = int(input())
nums = list(map(int, input().split(" ")))
primeNum = 0 # 소수의 개수
def prime(A : int) :
if A < 2 : # 2 미만은 소수, 합성수 X
return False
for i in range(2, A) :
if A%i == 0 :
return False
return True
for i in range(N) :
if prime(nums[i]) :
primeNum += 1
print(primeNum)
728x90
반응형
'Algorithm > Baekjoon' 카테고리의 다른 글
[Algorithm] 백준 6588번 골드바흐의 추측 (Python) (0) | 2023.02.07 |
---|---|
[Algorithm] 백준 1929번 소수 구하기 (Python) (0) | 2023.02.06 |
[Algorithm] 백준 9613번 GCD 합 (Python) (0) | 2023.02.06 |
[Algorithm] 백준 2609번 최대공약수와 최소공배수 (Python) (0) | 2023.02.06 |
[Algorithm] 백준 1934번 최소공배수 (Python) (0) | 2023.02.03 |