Notice
Recent Posts
Recent Comments
Link
일 | 월 | 화 | 수 | 목 | 금 | 토 |
---|---|---|---|---|---|---|
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 |
Tags
- 백준
- 그리디
- 데이터
- 코테
- 마크다운
- 탐색알고리즘
- 코딩문제
- 수열
- 파이썬
- 그리디알고리즘
- database
- 코딩테스트
- 수학
- 인프콘2024
- chatGPT
- Markdown
- 기초
- 알고리즘기초
- 그래프
- 소수
- mongoDB
- httpCode
- db
- 마크다운문법
- 알고리즘
- 몽고DB
- NoSQL
- Python
- 데이터베이스
- Algorithm
Archives
- Today
- Total
Dev_from the Bottom
#13. Algorithm09_python) 소수의 합 본문
문제) 소수의 합
임의의 정수를 입력받아, 그 안에 포함된 소수의 합을 구하라
step1) 테스트 및 밑그림
- 10 입력 받았다고 가정할 때, 2~10 사이에 속한 소수의 합 계산
- 2 + 3 + 5 + 7 = 17
n = 10
sum = 0
for i in range(2, 10+1): # 2~10까지 소수인지 판단하고자
isPrime = True # 소수 여부 불린 변수
for j in range(2, i): # 특정 숫자가 소수인지 판단
if i % j == 0:
isPrime = False # 나눠서 떨어지는 값 있으면, 소수 아님
# break
print(i)
if isPrime == True:
sum += i
print()
print(sum)
>>>
4
6
6
8
8
9
10
10
62
""
실패
- 소수가 찍히지 않음
- 함계도 잘못된 답을 출력함
=> 두 번째 if 문의 위치가 잘못되었음!
"""
step2) 테스트 및 밑그림 + 정답 출력
- 10 입력 받았다고 가정할 때, 2~10 사이에 속한 소수의 합 계산
- 2 + 3 + 5 + 7 = 17
n = 10
sum = 0 # 합계(정답) 변수
for i in range(2, n+1): # 2~n까지 소수인지 판단하고자
isPrime = True # 소수 여부 불린 변수
for j in range(2, i): # 특정 숫자가 소수인지 판단
if i % j == 0:
isPrime = False # 나눠서 떨어지는 값 있으면, 소수 아님
break
if isPrime == True: # 소수라면,
sum += i # 합계 sum 변수에 누적
print('answer :', sum)
>>>
answer : 17
step3) 메서드
def algo09(n):
sum = 0 # 합계(정답) 변수
for i in range(2, n+1): # 2~n까지 소수인지 판단하고자
isPrime = True # 소수 여부 불린 변수
for j in range(2, i): # 특정 숫자가 소수인지 판단
if i % j == 0:
isPrime = False # 나눠서 떨어지는 값 있으면, 소수 아님
break
if isPrime == True: # 소수라면,
sum += i # 합계 sum 변수에 누적
return sum # 결과 리턴
# 정답 출력
n = int(input('n 입력 : '))
print(f'{n} 이하 소수의 합 : {algo09(n)}')
>>>
n 입력 : 10
10 이하 소수의 합 : 17
# 배운점
- 이중 for문을 스스로 고민해서 활용
- isPrime이라는 불린 변수를 실제로 이용함
# 소회
- 지난번 로직을 가져와, 확장하여 문제 해결함
'Algorithm_study' 카테고리의 다른 글
#15. Algorithm11_python) 약수 구하기 (0) | 2022.05.18 |
---|---|
#14. Algorithm10_python) 최대공약수, 최소공배수 (0) | 2022.05.16 |
#12. Algorithm08_python) 소수 판별 (0) | 2022.05.13 |
#11. Algorithm07_python) 피보나치 수열의 합 (0) | 2022.05.12 |
#10. Algorithm06_python) 수열 1!+2!+3!+4!+5!+...+10!의 합계 (0) | 2022.05.11 |
Comments