김범주·2022년 7월 25일
0

백준 파이썬

목록 보기
20/29
post-thumbnail
M = int(input())
N = int(input())

num_list = [i for i in range(M, N+1)]


import math

# 소수 판별
def primenumber(x):
  for i in range (2, int(math.sqrt(x) + 1)):	# 2부터 x의 제곱근까지의 숫자
    if x % i == 0:		# 나눠떨어지는 숫자가 있으면 소수가 아님
      return False
  return True  

ans_list = []

for i in num_list:
  if primenumber(i) == True:
    ans_list.append(i)
  else:
    continue



if len(ans_list) == 0 :
  print(-1)
else:
  sum1 = sum(ans_list)
  min1 = min(ans_list)
  print(sum1)
  print(min1)  

주어진 숫자 범위의 리스트를 만들고 소수판별 함수를 돌려 소수인 경우에만 정답 리스트에 추가하기, 정답 리스트의 합과 최소값을 사용해 답을 출력했는데 1 처리를 여기서 까먹었다...

정답

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

num_list = [i for i in range(M, N+1)]
if num_list[0] == 1:
  num_list.pop(0)

import math

# 소수 판별
def primenumber(x):
  for i in range (2, int(math.sqrt(x) + 1)):	# 2부터 x의 제곱근까지의 숫자
    if x % i == 0:		# 나눠떨어지는 숫자가 있으면 소수가 아님
      return False
  return True  

ans_list = []

for i in num_list:
  if primenumber(i) == True:
    ans_list.append(i)
  else:
    continue



if len(ans_list) == 0 :
  print(-1)
else:
  sum1 = sum(ans_list)
  min1 = min(ans_list)
  print(sum1)
  print(min1)  

1처리 해주고 통과

profile
개발꿈나무

0개의 댓글