1978번: 소수 찾기
첫 줄에 수의 개수 N이 주어진다. N은 100이하이다. 다음으로 N개의 수가 주어지는데 수는 1,000 이하의 자연수이다.
www.acmicpc.net
더보기
문제
주어진 수 N개 중에서 소수가 몇 개인지 찾아서 출력하는 프로그램을 작성하시오.
입력
첫 줄에 수의 개수 N이 주어진다. N은 100이하이다. 다음으로 N개의 수가 주어지는데 수는 1,000 이하의 자연수이다.
출력
주어진 수들 중 소수의 개수를 출력한다.
과정
- 배열을 입력 받고 각 숫자가 1과 자신을 제외한 숫자로 나누어 지는지 확인한다.
- 나누어지지 않는 값의 개수를 더해 준 후 출력
예제 입력
4
1 3 5 7
예제 출력
3
풀이
n = int(input())
nums = list(map(int, input().split()))
result = 0
for num in nums:
cnt = 0
if num > 1:
for i in range(2, num):
if num % i == 0:
cnt += 1
if cnt == 0:
result += 1
print(result)
한 줄씩 해석해보기
n = int(input())
nums = list(map(int, input().split()))
result = 0
- 수의 개수를 입력받는다.
- 숫자들을 입력받고 리스트화 해준다.
- 결과를 출력할 변수를 생성한다.
for num in nums:
cnt = 0
if num > 1:
for i in range(2, num):
if num % i == 0:
cnt += 1
- 숫자들을 하나씩 확인한다.
- 나누어지는 수가 있는지 확인하기 위해 cnt = 0 을 만든다.
- 1과 자신을 제외한 수로 나누기 위해 2 부터 num까지를 범위로 준다
- 만약 나누어 지는 수가 있을 시 cnt의 개수를 올려준다.
if cnt == 0:
result += 1
print(result)
- for문을 돈 후 cnt 가 0이라면 1과 자기자신을 제외한 나누어지는 수가 없다는 뜻이므로 소수이다.
- result의 개수를 올려준다.
- 배열을 모두 확인 후 result값을 리턴한다.
'코딩 테스트 (Python) > 백준' 카테고리의 다른 글
[백준] 2518번 소수 (Python) (1) | 2024.01.06 |
---|---|
[백준] 1292번 쉽게 푸는 문제 (Python) (0) | 2024.01.06 |
[백준] 필수 문제 풀이 모음 (1) | 2024.01.06 |
[백준] 2693번 N번째 큰 수 (Python) (1) | 2024.01.06 |
[백준] 11279번 최대 힙 (Python) (0) | 2024.01.06 |