프로젝트 오일러 도전기 #1 (with 파이썬 프로그래밍공부)

문제

Multiples of 3 or 5

If we list all the natural numbers below 10 that are multiples of 3 or 5, we get 3, 5, 6 and 9. The sum of these multiples is 23.

Find the sum of all the multiples of 3 or 5 below 1000.

 

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

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

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

 

접근아이디어


3과 5의 배수를 찾으려면 해당 미지수 i를 3이나 5로 나눴을때 나머지가 0이 되면된다.

 

파이썬에서 나눗셈명령어은 / 이고  나머지 명령어는 %이다.

1
2
3
4
>>> 17/10
1.7
>>> 17%10
7
cs

혹은 divmod(분자,분모) 로 구할수있다.

1
2
>>> divmod(17,10)
(17)
cs

 

해당 숫자들의 합을 구하는 방법은 두가지가 떠올랐는데

1. 변수하나를 잡고 계속 더한다

1
2
3
4
5
>>> a=0
>>> for i in range(1,10):
...     a+=i
>>> print(a)
45
cs


for 문은 범위를 지정후 반복을 시행할때 쓰는문구로

for 변수 in ragne(시작,끝):

혹은

 for 변수 in ragne(끝):

또는

for 변수 in range(리스트) :

이런식으로 구성되어있으며 시작범위를 지정해주지 않으면 0부터 시작하여 끝-1까지 진행된다.


2. 집합(리스트)를 만들어서 전체 합을 계산한다 


1
2
3
4
5
>>> a=[]
>>> for i in range(1,10) :
...     a.append(i)
>>> print(a)
[123456789]
cs


리스트에 변수를 추가 하는 명령어는 

리스트.append(추가)


2번이 좀더 멋들여져보이지만

프로젝트 오일러는 단순하게 '답'만 계산하면 되기에 1번으로 진행했다.

 



3과 5의 배수 판단 여부는

if 문을 활용해서 확인하였다


1
2
>>>if i%3==0 or i%5==0 :
...         a+= i
cs


그런데




틀렸다...


문제를 다시보니 '미만'을 의미한다


예시에서 10은 5의 배수인데 포함을 안시켰으니 미만이 맞는것이다


범위를 다시 range(1,1000) 으로 수정하니




클리어

댓글

이 블로그의 인기 게시물

프로젝트 오일러 도전기 #5 (with 파이썬 프로그래밍공부)

프로젝트 오일러 도전기 #6 (with 파이썬 프로그래밍공부)

프로젝트 오일러 도전기 #7