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

 

<이상>

반응형

+ Recent posts