📝 문제
> 자연수 M과 N이 주어질 때 M이상 N이하의 자연수 중 소수인 것을 모두 골라 이들 소수의 합과 최솟값을 찾는 프로그램을 작성하시오.
https://www.acmicpc.net/problem/2581
🎨 풀이
💡 성공 코드
def sosu (num):
if num == 1 :
return 0
for i in range(2,num):
if num % i == 0:
return 0
arr.append(num)
return 0
n = int(input())
m = int(input())
arr = []
for num in range(n,m+1):
sosu(num)
if sum(arr) == 0 :
print(-1)
else :
print(sum(arr))
print(arr[0])
> 핵심 : 소수 함수 따로 만들었음~! 하나씩 나눠주면서 보기 & 소수가 하나도 없을 경우를 대비해서 if문 만든 후 출력해주기!
# main
1. n과 m을 입력받는다.
2. for문을 통해 n부터 m까지 sosu 체크 함수를 돌린다.
# sosu
4. 받아온 수가 1이라면 0을 리턴한다.
5. 2부터 num - 1 까지 for문 돌리면서 num을 나눠준다.
- 1로 나누면 안됨!!!!! 무조건 2부터~
6. 만약 나눴는데 0으로 나누어 떨어진다면 소수가 아니라는 뜻이기 때문에 return 한다.
7. for문이 아무 문제 없이 끝났다면 arr 배열에 num을 추가해준 후 return한다.
- arr 배열 = 소수 모음 배열
# main
8. 만약 arr의 합이 0이라면 -1을 print한다.
9. 아니라면, arr의 합과 arr[0] 을 print 한다.
- arr[0] == 그 중 최솟값 (맨 처음으로 들어온 소수이기 때문!)
끝~
⭐ 느낀점
> 하. ㅎㅎ .. 어제 네이버 부스트캠프 코딩 그거 하고 설거지하고 잠깐 잔다는 게 푹 자버려서..~ 하하! ㅠㅠ 마음이 좀 아프다. 연속 깨고 싶지 않았는데 잘하다가 ㅠㅠ 너무 아쉽다. 이런 일이 또 일어나지 않도록 해야겠다. ㅠㅠ
'알고리즘 공부 > 백준' 카테고리의 다른 글
[DAY 100_백준] 1929번 - 소수 구하기 (파이썬) (0) | 2022.06.30 |
---|---|
[DAY 099_백준] 11653번 - 소인수분해 (파이썬) (0) | 2022.06.29 |
[백준] 1978번 - 소수 찾기 (파이썬) (0) | 2022.06.26 |
[백준] 2839번 - 설탕 배달 (파이썬) (0) | 2022.06.25 |
[백준] 10757번 - 큰 수 A+B (파이썬) (0) | 2022.06.24 |