본문 바로가기
코딩/백준

알고리즘 - Python / 백준 - 2581번 : 소수

반응형

2581번: 소수 (acmicpc.net)

 

2581번: 소수

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

www.acmicpc.net

 


풀이

  • 범위의 양 끝 값을 입력받고 , 그 범위 내의 모든 소수의 합과 가장 작은 소수를 출력하는 문제다.
  • 최대 10,000 까지의 소수를 찾아야 하므로 단순하게 에라토스테네스의 체로 구현하였다.

 

n=10001

def isPrime(a):
  if(a<2):
    return False
  for i in range(2,a):
    if(a%i==0):
      return False
  return True

a = int(input())
b = int(input())
ans = 0
p = 0
for i in range(a,b+1):
  if(isPrime(i)):
      ans += i
      if p == 0:
          p = i
if ans == 0:
    print(-1)
else:
    print(ans)
    print(p)

 

 

 

 

 

반응형