알고리즘 문제풀이

백준 - 소수 2581 (Python)

2023. 3. 6. 19:39
목차
  1. 문제설명
  2. 입력
  3. 출력
  4. 예제입력 / 예제출력
  5. 문제이해 및 코드설명
  6. 코드
반응형
[Silver V] 소수 - 2581
https://www.acmicpc.net/problem/2581

 

문제설명

자연수 M과 N이 주어질 때 M이상 N이하의 자연수 중 소수인 것을 모두 골라 이들 소수의 합과 최솟값을 찾는 프로그램을 작성하시오.

예를 들어 M=60, N=100인 경우 60이상 100이하의 자연수 중 소수는 61, 67, 71, 73, 79, 83, 89, 97 총 8개가 있으므로, 이들 소수의 합은 620이고, 최솟값은 61이 된다.

 

입력

입력의 첫째 줄에 M이, 둘째 줄에 N이 주어진다.

M과 N은 10,000이하의 자연수이며, M은 N보다 작거나 같다.

 

출력

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

단, M이상 N이하의 자연수 중 소수가 없을 경우는 첫째 줄에 -1을 출력한다.

 

 

예제입력 / 예제출력

 

문제이해 및 코드설명

범위가 주어진 상태에서 소수들을 찾은 후 소수의 합과 최소값을 구해주는 문제이다.

M부터 N까지 하나하나반복하면서 소수가 있는지 여부를 확인하는 코드이다. 코드는 이중 for 문으로 구성되며 처음 M부터 N까지 범위안에 수들을 확인하는 반복문이 있고, 그 안에서는 약수의 개수를 확인하는 반복문이 존재한다. 2부터 확인하는 코드이기 떄문에 소수라고 판단되는 수는 자기 자신으로 나눈 수만 약수라고 확인이 될것이다. 해당코드를 통해 소수를 판별후 빈 리스트에 넣고, 문제에서 원하는 대로 출력시켜주었다.  

 

 

 

코드

M = int(input())
N = int(input())

sosu = []

for i in range(M,N+1):
    A = 0
    if i == 1:
        continue

    for j in range(2, i+1): #1은 위에서 x , 2부터 i까지 소수검사
        if i%j == 0: # i를 2부터 1개씩 더해주며 나눠줌 (i를 2,3,4,5,6...i까지)
            A += 1 # 나누어 떨어지면 A에 1씩 더해줌
    
    if (A == 1): # A가 1이면 소수로 판단, 개수를 셈 (A가 많다는 의미 = 약수가 여러개를 의미)
        sosu.append(i)

if len(sosu) > 0:
    print(sum(sosu))
    print(min(sosu))
else:
    print(-1)

 

반응형

'알고리즘 문제풀이' 카테고리의 다른 글

백준 - 촌수계산 2644 (Python)  (0) 2023.03.06
백준 - 로마 숫자 2608 (Python)  (0) 2023.03.06
백준 -괄호의 값 2504(Python)  (0) 2023.03.02
백준 - 카드1 2161 (Python)  (0) 2023.03.02
백준 - 통계학 2108 (Python)  (0) 2023.03.02
  1. 문제설명
  2. 입력
  3. 출력
  4. 예제입력 / 예제출력
  5. 문제이해 및 코드설명
  6. 코드
'알고리즘 문제풀이' 카테고리의 다른 글
  • 백준 - 촌수계산 2644 (Python)
  • 백준 - 로마 숫자 2608 (Python)
  • 백준 -괄호의 값 2504(Python)
  • 백준 - 카드1 2161 (Python)
coryne
coryne
반응형
coryne
coryne의 정리노트
coryne
전체
오늘
어제
  • 분류 전체보기 (56)
    • python (2)
    • Web programing (1)
    • Linux (3)
    • Deep Learning (0)
    • 기타 (0)
    • 알고리즘 문제풀이 (49)
    • 빅데이터분석기사 (0)
    • 알고리즘 이론 (1)

블로그 메뉴

  • 홈
  • 태그
  • 방명록

공지사항

인기 글

태그

  • 정렬
  • 데이크스트라
  • 스택
  • 자료 구조(data_structures)
  • 빅데이터분석기사
  • 플로이드-워셜
  • 깊이 우선 탐색
  • 공공데이터일경험수련생
  • Python
  • pandas
  • 수학
  • 브루트포스 알고리즘
  • machine_learning
  • 구현
  • 그리디 알고리즘
  • 출처 : eduatoz
  • 자료 구조
  • 다이나믹 프로그래밍
  • 빅데이터분석기사 실기
  • 문자열
  • 백준
  • 너비 우선 탐색
  • 큐
  • EduAtoZ
  • 우선순위 큐
  • 그래프 탐색
  • 자료구조
  • 그래프 이론
  • 정수론
  • 소수 판정

최근 댓글

최근 글

hELLO · Designed By 정상우.
coryne
백준 - 소수 2581 (Python)
상단으로

티스토리툴바

단축키

내 블로그

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

블로그 게시글

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

모든 영역

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

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