[Project Euler #1][C++] 1000보다 작은 자연수 중에서 3 또는 5의 배수를 모두 더하면?
Problem Solving/Project Euler 2020. 10. 24. 20:29728x90
728x170
문제1 : 1000보다 작은 자연수 중에서 3 또는 5의 배수를 모두 더하면?
문제
10보다 작은 자연수 중에서 3 또는 5의 배수는 3, 5, 6, 9 이고, 이것을 모두 더하면 23입니다.
1000보다 작은 자연수 중에서 3 또는 5의 배수를 모두 더하면 얼마일까요?
문제 해결 방법
for 문을 사용하여 1이상 1000 미만의 범위에서 해당 수가 3 또는 5로 나누어질 경우, 그 값들의 축적합을 구하도록 프로그램을 구현하였다.
소스 코드
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 | #include <iostream> using namespace std; #define MAX_NUM 1000 int main() { int sum = 0; for (int i = 1; i < MAX_NUM; i++) { if ((i % 3 == 0) || (i % 5 == 0)) { sum += i; } } cout << sum << endl; return 0; } |
정답
233168 |
심화 공부
등차급수(Arithmetic Series)
초항이 $a_{1}$ 이고, 공차가 $d$ 인 등차수열의 초항부터 n번째 항까지의 합 $S_{n} = a_{1} + a_{2} + \cdots + a_{n - 1} + a_{n}$ 을 등차급수(Arithmetic Series) 라 하고, 다음 공식으로 구할 수 있다.
$S_{n} = \frac{n(a_{1} + a_{n})}{2} = \frac{n[2a_{1} + (n-1)d]}{2}$
포함배제의 원리(Inclusion-Exclusion Principle)
유한 집합의 합집합의 원소 개수를 세는 기법으로, 2개 또는 3개의 집합의 경우는 각각 다음과 같다.
$\begin{vmatrix}A \cup B \end{vmatrix} = \begin{vmatrix}A\end{vmatrix} + \begin{vmatrix}B\end{vmatrix} - \begin{vmatrix}A \cap B\end{vmatrix}$
$\begin{vmatrix}A \cup B \cup C\end{vmatrix} = \begin{vmatrix}A\end{vmatrix} + \begin{vmatrix}B\end{vmatrix} + \begin{vmatrix}C\end{vmatrix}- \begin{vmatrix}A \cap B\end{vmatrix} - \begin{vmatrix}A \cap C\end{vmatrix} - \begin{vmatrix}B \cap C\end{vmatrix} + \begin{vmatrix}A \cap B \cap C\end{vmatrix}$
728x90
그리드형(광고전용)
'Problem Solving > Project Euler' 카테고리의 다른 글
[Project Euler #9][C++] a + b + c = 1000 이 되는 피타고라스 수 (0) | 2020.12.23 |
---|---|
[Project Euler #8][C++] 1000자리 수 안에서 이어지는 5개 숫자의 곱 중 최댓값은? (0) | 2020.12.22 |
[Project Euler #7][C++] 10001번째의 소수 (0) | 2020.12.22 |
[Project Euler #6][C++] 1부터 100까지 "제곱의 합"과 "합의 제곱"의 차는? (0) | 2020.12.22 |
[Project Euler #5][C++] 1 ~ 20 사이의 어떤 수로도 나누어 떨어지는 가장 작은 수 (0) | 2020.11.16 |
[Project Euler #4][C++] 세자리 수를 곱해 만들 수 있는 가장 큰 대칭수 (0) | 2020.11.15 |
[Project Euler #3][C++] 가장 큰 소인수 구하기 (0) | 2020.10.26 |
[Project Euler #2][C++] 피보나치 수열에서 4백만 이하이면서 짝수인 항의 합 (0) | 2020.10.24 |