2581

Tae·2022년 5월 9일
0
def is_p(x):
  for i in range(2,x):
    if x%i==0:
      return False
  return True

M=int(input())
N=int(input())
list_MN = []
for i in range(M,N+1):
  if is_p(i)==True:
    list_MN.append(i)
if len(list_MN)>=1:
  print(sum(list_MN))
  print(min(list_MN))
elif len(list_MN)==0:
  print(-1)

소수를 구하는 함수로 소수인지를 판별하고, 소수이면 리스트에 추가한다.

풀이

  1. 소수를 구하는 함수 is_p를 만든다.
  2. M과 N을 입력받고, 빈 리스트 list_MN을 만든다
  3. M에서 N까지의 수 중 소수(is_p(i)가 true)를 리스트에 추가한다.
    3-1 리스트의 길이가 1이상(소수가 존재)이면 리스트의 합계와 최소값을 출력한다
    3-2 리스트의 길이가 0(소수가 없음)이면 -1 을 출력한다.

입력

입력의 첫째 줄에 M이, 둘째 줄에 N이 주어진다.
M과 N은 10,000이하의 자연수이며, M은 N보다 작거나 같다.

출력

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

baekjoon 2581

profile
프론트엔드 개발자

0개의 댓글