코딩테스트 & 문제 풀이

[Python]백준_2581 : 소수

2023. 10. 29. 15:15

2022년 11월 6일에 작성됨

 

https://www.acmicpc.net/problem/2581

 

2581번: 소수

M이상 N이하의 자연수 중 소수인 것을 모두 찾아 첫째 줄에 그 합을, 둘째 줄에 그 중 최솟값을 출력한다.  단, M이상 N이하의 자연수 중 소수가 없을 경우는 첫째 줄에 -1을 출력한다.

www.acmicpc.net

 

 

문제 분석

소수는 1과 자기 자신만을 약수로 가지는 수이다.
즉, n을 2부터 n-1까지 수로 나눴을 때 나누어 떨어지는 수가 없다면 n은 소수가 되는 것을 이용한다.

 

 

소스 코드 (⭕)

m = int(input())
n = int(input())
sosu_list = []

for i in range(m, n+1):             # m부터 n까지 반복
    num = 0
    for j in range(2, i):           # 2부터 i - 1까지 반복
        if i % j == 0:              # i % j가 0이라면
            num += 1                # num에 +1 해줌
            break
    if num == 0:                    # num이 0이라면
        sosu_list.append(i)         # 소수 리스트에 i 추가함

if 1 in sosu_list:                  # 소수 리스트에 1이 있으면
    sosu_list.remove(1)             # 1을 제거 해줌

if len(sosu_list) == 0:             # 소수 리스트에 아무것도 없으면
    print(-1)                       # -1을 출력
else:
    print(sum(sosu_list))
    print(sosu_list[0])

 

코드 분석

1. 범위 m과 n을 입력하고 소수를 담을 빈 리스트를 만든다.

2. i를 m부터 n까지 반복해주는데, i가 소수인지 알기 위해서 j를 2부터 i-1까지 반복 해준다.

3. 만약, i%j가 0이라면 i는 소수가 아니므로, num에 +1을 해주고 반복문을 빠져나온다.

4. num이 그대로 0이라면 i는 소수이므로, 소수 리스트에 넣어준다.

5. 소수 리스트에 1이 있으면 1을 제거해주고, 리스트가 비었으면 -1을 출력해준다.

6. 첫째 줄에 소수 리스트의 합을 출력하고, 둘째 줄에 소수 리스트의 최솟값을 출력해준다.

 

 

 

end

num이 1인지 0인지에 따라 소수인지 아닌지 판단할 수 있는 아이디어가 되게 좋은 것 같다!

 

 

 

'코딩테스트 & 문제 풀이' 카테고리의 다른 글

[Python]백준_5622 : 다이얼  (2) 2023.10.30
[Python]백준_2628 : 종이자르기  (3) 2023.10.30
[Python]백준_1789 : 수들의 합  (2) 2023.10.29
[Python]백준_1427 : 소트인사이드  (1) 2023.10.29
[Python]백준_1193 : 분수찾기  (2) 2023.10.27
  1. 문제 분석
  2. 소스 코드 (⭕)
  3. 코드 분석
  4. end
'코딩테스트 & 문제 풀이' 카테고리의 다른 글
  • [Python]백준_5622 : 다이얼
  • [Python]백준_2628 : 종이자르기
  • [Python]백준_1789 : 수들의 합
  • [Python]백준_1427 : 소트인사이드
Hicecream
Hicecream
Hicecream
Hicecream
Hicecream
전체
오늘
어제
  • 분류 전체보기 (201)
    • 코딩테스트 & 문제 풀이 (159)
    • 동아리 활동 (8)
    • 외부 활동 (0)
    • 대학 과제 (3)
    • Git & Git Hub (5)
    • 코딩 프로젝트 (3)
    • 공부 메모 (17)
    • 일상 (2)
    • 참고사항 (2)

블로그 메뉴

  • 홈
  • 태그
  • 방명록

공지사항

인기 글

태그

  • 구현
  • Bronze 1
  • LV1
  • 정렬
  • Bronze 4
  • python
  • programmers
  • BOJ
  • 문자열
  • C
  • Java
  • C언어 기초 100제
  • 사칙연산
  • Silver 4
  • Bronze 3
  • Silver 5
  • Code up
  • Bronze 2
  • Bronze 5
  • 수학

최근 댓글

최근 글

hELLO · Designed By 정상우.
Hicecream
[Python]백준_2581 : 소수
상단으로

티스토리툴바

단축키

내 블로그

내 블로그 - 관리자 홈 전환
Q
Q
새 글 쓰기
W
W

블로그 게시글

글 수정 (권한 있는 경우)
E
E
댓글 영역으로 이동
C
C

모든 영역

이 페이지의 URL 복사
S
S
맨 위로 이동
T
T
티스토리 홈 이동
H
H
단축키 안내
Shift + /
⇧ + /

* 단축키는 한글/영문 대소문자로 이용 가능하며, 티스토리 기본 도메인에서만 동작합니다.