링크 : https://www.acmicpc.net/problem/2581
- 문제
- 설계하기(접근방법)
1. 먼저 m과 n을 입력받는다.
2. 반복문은 m부터 n까지 돌며 소수인지 아닌지 검사한다.
만약 소수라면 소수리스트에 append 해준다.
3. 소수 검사 프로그램을 메서드로 만들어 코드를 깔끔하게 구성한다
소수가 아니면 0을 반환, 소수면 입력받은 소수를 반환한다.
4. 만약 리스트가 NULL이라면 , -1을 출력
원소가 있다면 리스트의 총합과 min값(가장 첫번째로 append된 소수 즉 인덱스의 위치가 0)을 출력한다
- 코드(출력)
m = int(input())
n = int(input())
def find_primenumber(num):
if (num == 1):
return 0
for i in range(2, num):
if (num % i == 0):
return 0
return num
primenumber_list = []
for i in range(m, n + 1):
if (find_primenumber(i) > 0):
primenumber_list.append(i)
if not primenumber_list:
print(-1)
else:
print(sum(primenumber_list))
print(primenumber_list[0])
- 얻어갈 부분
1. 소수를 검사하는 과정을 메서드화 시켜 코딩해보았다. 확실히 코드를 보기 깔끔하다
2. 처음에는 총합을 구하는 리스트와 소수 리스트를 분리했는데, 소수 리스트만 구한 후 sum()메서드를 통해 합을 구할 수 있다는 것을 깨닫고 리스트를 하나 삭제했다.
'알고리즘(백준) > 기타' 카테고리의 다른 글
[백준] 1929번 : 소수 구하기 - python (0) | 2023.02.13 |
---|---|
[백준] 11653번 : 소인수분해 - python (0) | 2023.02.12 |
[백준] 1978번 : 소수 찾기 - python (0) | 2023.02.10 |
[백준] 2775번 : 부녀회장이 될테야 - python (0) | 2023.02.08 |
[백준] 10250번 : ACM 호텔 - python (0) | 2023.02.07 |