728x90
반응형
[12번 문제]
1부터 n까지의 자연수를 차례로 더하여 구해진 값을 삼각수라고 합니다.
예를 들어 7번째 삼각수는 1 + 2 + 3 + 4 + 5 + 6 + 7 = 28이 됩니다.
이런 식으로 삼각수를 구해 나가면 다음과 같습니다.
1, 3, 6, 10, 15, 21, 28, 36, 45, 55, ...
이 삼각수들의 약수를 구해봅시다.
1: 1
3: 1, 3
6: 1, 2, 3, 6
10: 1, 2, 5, 10
15: 1, 3, 5, 15
21: 1, 3, 7, 21
28: 1, 2, 4, 7, 14, 28
위에서 보듯이, 5개 이상의 약수를 갖는 첫번째 삼각수는 28입니다.
그러면 500개 이상의 약수를 갖는 가장 작은 삼각수는 얼마입니까?
[코드]
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 | #include "stdafx.h" #include <stdlib.h> #include <iostream> using namespace::std; int ans=0; int check_div(int num) { int temp = 0; for (int i = 1; i*i <= num; i++) { if (num % i == 0) { temp++; if (i*i != num) temp++; } } return temp; } int main() { for (int i = 1; ; i++) { ans += i; if (check_div(ans) >= 500) break; } cout << ans << endl; system("pause"); return 0; } | cs |
728x90
반응형
'Solution > Project Euler' 카테고리의 다른 글
[14/C++] 백만 이하로 시작하는 우박수 중 가장 긴 과정을 거치는 것은? (0) | 2018.05.25 |
---|---|
[13/C++] 50자리 숫자 100개를 더한 값의 첫 10자리 구하기 (0) | 2018.05.25 |
[11/C++] 20×20 격자에서 연속된 네 숫자의 곱 중 최대값 (0) | 2018.05.24 |
[10/C++] 이백만 이하 소수의 합 (0) | 2018.05.24 |
[9/C++] a + b + c = 1000 이 되는 피타고라스 수 (0) | 2018.05.24 |