1~n 또는 n1~n2 범위에서 3의 배수 합
글. 오상문 sualchi@daum.net
3의 배수 3 6 9 12... 는 아래처럼 변형 가능
3 3 3 3...
x x x x
1 2 3 4...
3의 배수 개수 k를 구하면 1~k까지 합에 3을 곱하면 3의 배수 합을 구할 수 있습니다.
# 1~n 3의 배수 합 계산 함수
def sum3(k):
n = k//3 # 3의 배수 개수
return (((n+1)*n)//2)*3 # 3의 배수 합 공식
#예: 1~100 범위 3의 배수 합
n = 100
print(sum3(n)) # 1683
print(sum(range(3,n+1,3))) # 1683
#예: 50~100 범위 3의 배수 합
n1=50
n2=100
print(sum3(n2) - sum3(n1-1)) # 1275
if n1%3 != 0:
n1 += (3-n1%3) # 3의 배수로 시작
print(sum(range(n1,n2+1,3))) # 1275
<이상>
반응형
'Python 기초' 카테고리의 다른 글
파이썬, 연속된 같은 숫자는 싫어 (0) | 2019.10.05 |
---|---|
파이썬, 양의 정수 네자리 또는 여섯자리 검사 (0) | 2019.10.05 |
파이썬, 0~100 짝수 합 구하는 다양한 방법 (0) | 2019.09.27 |
파이썬, 문자열 내용이 숫자로 바꿀 수 있는지 검사하기 (0) | 2019.09.27 |
파이썬, 텍스트 파일 저장 및 읽기, 가공하여 출력하기 (0) | 2019.09.21 |