반응형

문제

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


이전 소수 문제랑 유사하다고 볼수있다.

범위가 정해져 있다면 에라토스테네스의 체를 이용해 구하면된다.


1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
import sys
 
 
prime_number=[2 for _ in range(10001)]
 
for i in range(1,10001):
 
    if i==1:
        prime_number[i]=0
    elif prime_number[i]!=0:
        prime_number[i]=1
        mul = 2
        j = i
        while(j*mul<=10000):
            prime_number[j*mul]=0
            mul+=1
 
 
n=int(sys.stdin.readline())
m=int(sys.stdin.readline())
 
result_sum=0
result_min=999999
for i in range(n,m+1):
    if prime_number[i]==1:
        result_sum+=i
        if i<result_min:
            result_min=i
 
if result_sum==0:
    print(-1)
else:
    print(result_sum)
    print(result_min)
cs



앞의 문제와 동일하고 출력부분만 수정해 주었다.





반응형

'알고리즘(python) > 수학' 카테고리의 다른 글

[Python]수학2 백준 4948  (0) 2019.12.20
[Python]수학2 백준 1929  (0) 2019.12.20
[Python]수학2 백준 1978  (0) 2019.12.20
[Python]수학 백준 1011  (0) 2019.12.20
[Python]수학 백준 2775  (0) 2019.12.20
  • 네이버 블러그 공유하기
  • 네이버 밴드에 공유하기
  • 페이스북 공유하기
  • 카카오스토리 공유하기