반응형

안녕하세요, 츄르 사려고 코딩하는 집사!      코집사입니다.

안녕하세요, 츄르 사려고 코딩하는 집사! 코집사입니다.

파이썬 문제좀 찾아보다 보니까 정말 기초 문제로 쉽게 풀 수 있는 문제가 있더군요.

사이트는 아래입니다.

http://euler.synap.co.kr/

 

Project Euler

About Project Euler @ kr 레온하르트 오일러 (1707-1783) 환영합니다! 프로젝트 오일러 (ProjectEuler.net) 는 수학적인 문제들을 컴퓨터 프로그래밍으로 하나씩 해결해가는 퀴즈 풀이 사이트입니다. 여기에는 흥미로운 내용이 많이 있지만, 문제나 댓글 등이 모두 영어로 되어 있어서 다소 부담스러울 수 있습니다. 우리 사이트 (Project Euler @ kr) 에서는 보다 많은 이들이 쉽게 접근해서 즐길 수 있도록 원본 문

euler.synap.co.kr

 

1. 문제

-> 1000보다 작은 자연수 중에서 3 또는 5의 배수를 모두 더하면?

10보다 작은 자연수 중에서 3 또는 5의 배수는 3, 5, 6, 9 이고, 이것을 모두 더하면 23입니다.

1000보다 작은 자연수 중에서 3 또는 5의 배수를 모두 더하면 얼마일까요?

 

2. 답

233168

 

3. 코드

total = 0
for i in range(1000):
    if i%3==0:
        total += i
    elif i%5==0:
        total += i
    elif i%3==0 and i%5==0:
        total -= i
print(total)

 

4. 해설

문제를 보면, 3의배수와 5의 배수를 모두 더하면 되는 문제이다. 하지만, 3의 배수와 5의 배수의 공배수가 있어 저 2개만 고려한다면 공배수는 2번 더해지기 때문에 공배수가 나오면 빼줘야 한다. 그래서 나는 일단 배수들을 다 더하고 공배수를 한 번 빼는 결과를 얻어서 풀게 되었다. total이라는 변수를 통해 3의 배수와 5의 배수들을 다 더하고, 3의 배수와 5의 배수인 15의 배수는 1번씩 빼게 하여 중복되는 값들을 1번씩 빼줘 문제를 풀었다. 

 

반응형
  • 네이버 블러그 공유하기
  • 네이버 밴드에 공유하기
  • 페이스북 공유하기
  • 카카오스토리 공유하기