250x250
Notice
Recent Posts
Recent Comments
Link
멋쟁이v의 개발일지
[백준 1978번] 소수 찾기(파이썬) 본문
728x90
320x100
문제
주어진 수 N개 중에서 소수가 몇 개인지 찾아서 출력하는 프로그램을 작성하시오.
입력
첫 줄에 수의 개수 N이 주어진다. N은 100이하이다. 다음으로 N개의 수가 주어지는데 수는 1,000 이하의 자연수이다.
출력
주어진 수들 중 소수의 개수를 출력한다.
예제 입력
4
1 3 5 7
예제 출력
3
풀이
주어진 숫자 중 소수가 있는지 없는지 찾는 문제입니다.
소수 : 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. 소수 갯수 출력
작성 코드
N = int(input()) A = list(map(int, input().split())) answer = 0 # 소수 갯수를 셀 변수 for i in A: # 입력된 수를 하나씩 확인 cnt = 0 # 나머지가 0인 갯수를 셀 변수 ( 입력된 수를 하나씩 확인할 때마다 0으로 초기화 ) if i == 1: # 1일 땐 무시 continue for j in range(2, N+1): # 2부터 입력된 수까지 나머지를 확인 if i % j == 0: # 나머지가 0이면 변수에 +1 cnt += 1 if cnt == 1: # 나머자기 0인 갯수가 1개이면 소수 answer += 1 # 소수 갯수 +1 print(answer)
728x90
320x100
'0년차 > 알고리즘(기본 수학)' 카테고리의 다른 글
[백준 11653번] 소인수분해(파이썬) (0) | 2022.12.03 |
---|---|
[백준 4948번] 베르트랑 공준(파이썬) (0) | 2022.12.03 |
[백준 2581번] 소수(파이썬) (1) | 2022.12.02 |
[백준 2839번] 설탕 배달(파이썬) (0) | 2022.12.02 |
[백준 2775번] 부녀회장이 될테야(파이썬) (2) | 2022.12.01 |
Comments