공부 포인트: 컴퓨팅 사고
문제
주어진 수 N개 중에서 소수가 몇 개인지 찾아서 출력하는 프로그램을 작성하시오.
입력
첫 줄에 수의 개수 N이 주어진다. N은 100이하이다. 다음으로 N개의 수가 주어지는데 수는 1,000 이하의 자연수이다.
출력
주어진 수들 중 소수의 개수를 출력한다.

알고리즘
N = int(input())
A = list(map(int, input().split()))
#소수의 개수
result = 0
for i in A:
cnt = 0
if i == 1:
continue
for j in range(2, i+1):
if i % j == 0:
cnt += 1
if cnt == 1:
result += 1
print(result)
알고리즘 설명
주어진 숫자 중 소수가 있는지 없는지 찾는 문제입니다.
소수 : 1보다 큰 자연수 중 1과 자기 자신만을 약수로 가지는 수
1을 제외하면 자기 자신만을 약수로 가진다는 뜻이네요.
2~자기 자신까지 차례로 나눴을 때 나누어 떨어지는 수가 자기 자신 하나뿐입니다.
7을 예로 들면
7 % 2 = 1
7 % 3 = 1
7 % 4 = 3
7 % 5 = 2
7 % 6 = 1
7 % 7 = 0
나누어 떨어지는 수가 1개 이므로 7은 소수입니다.
코드를 순서대로 작성한다면
1. 주어지는 수를 입력
2. 소수의 갯수를 셀 변수를 선언
3. 주어지는 수를 하나씩 대입
3-1. 나머지가 0인 갯수를 셀 변수 선언
3-2. 1은 제외, 2 ~ 주어지는 수까지 나머지가 0인 갯수를 변수에 저장
3-3. 나머지가 0인 갯수가 1개이면 소수 갯수 변수에 +1
4. 소수 갯수 출력
참고 사이트
https://blognavercomcheetah254.tistory.com/43
[백준 1978번] 소수 찾기(파이썬)
문제 주어진 수 N개 중에서 소수가 몇 개인지 찾아서 출력하는 프로그램을 작성하시오. 입력 첫 줄에 수의 개수 N이 주어진다. N은 100이하이다. 다음으로 N개의 수가 주어지는데 수는 1,000 이하의
blognavercomcheetah254.tistory.com
'파이썬 왕 기초' 카테고리의 다른 글
[알고리즘_08] 백준 10872번 팩토리얼 (0) | 2024.03.06 |
---|---|
[알고리즘_06] 백준 2869번 달팽이는 올라가고 싶다 (0) | 2024.02.28 |
[알고리즘_05] 백준 1152번 단어의 개수 (0) | 2024.02.27 |
[알고리즘_04] 백준 11654번 아스키코드 (0) | 2024.02.27 |
[알고리즘_03] 백준 4344번 평균은 넘겠지 (0) | 2024.02.27 |