프로그래밍 공부를 위해 Projetct Euler의 문제 풀이를 연습하는 내용입니다.
문제(problem)
,제 답변(answer)
,추천하는 타인 답변(solution)
으로 구성되어 있습니다.
기본적으로 풀이는R
을 사용하였지만, 일부 연습을 위해Python
으로도 구현해 보았습니다.
Problem
- 번호 : 1
- 제목 :
1000보다 작은 자연수 중에서 3 또는 5의 배수를 모두 더하면? - 설명 :
10보다 작은 자연수 중에서 3 또는 5의 배수는 3, 5, 6, 9 이고, 이것을 모두 더하면 23입니다.
1000보다 작은 자연수 중에서 3 또는 5의 배수를 모두 더하면 얼마일까요?
Answer & Solution - R
- 1부터 1000까지 1씩 증가(
i
) - 3 또는 5로 나누었을때, 나머지가 0인 경우 해당 수(
i
)를 총합(sum
)에 더하기 - code : R 코드
# Answer
sum = 0
for (i in 1:1000){
if (i %% 3 == 0){
sum = sum + i
} else if (i %% 5 == 0){
sum = sum + i
} else {
}
cat(i, "|", sum, "\n")
}
## 234168
# Solution
problem1 <- function(a){
sum = 0
for (i in 1:a){
if (i %% 3 == 0){
sum = sum + i
} else if (i %% 5 == 0){
sum = sum + i
} else {
}
}
return(sum)
}
print(problem1(10))
print(problem1(1000))
## 234168
Answer & Solution - Python
- code : Python
# Answer
sum = 0
for i in range(1,1000):
if (i % 3 == 0) or (i % 5 == 0):
sum += i
print(i, sum)
## 234168
# Solution
def problem1(a):
sum = 0
for i in range(1, a):
if (i % 3 == 0) or (i % 5 == 0):
sum = sum + i
return sum
print(problem1(10))
print(problem1(1000))
## 234168
System Info.
PyCharm 2019.1 EAP (Community Edition)
Build #PC-191.6014.12, built on March 6, 2019
JRE: 11.0.2+159 amd64
JVM: OpenJDK 64-Bit Server VM by JetBrains s.r.o
Windows 7 6.1
R version 3.5.2 (2018-12-20)
Python 3.6.6
Platform: x86_64-w64-mingw32/x64 (64-bit)
Running under: Windows 7 x64 (build 7601) Service Pack 1
RStudio version 1.1.463