본문 바로가기

오각수

[오일러프로젝트] 45번문제 삼각수, 오각수, 육각수는 아래 식으로 구할 수 있습니다. 삼각수 Tn = n (n + 1) / 2 1, 3, 6, 10, 15, ... 오각수 Pn = n (3n − 1) / 2 1, 5, 12, 22, 35, ... 육각수 Hn = n (2n − 1) 1, 6, 15, 28, 45, ... 여기서 T285 = P165 = H143 = 40755 가 됩니다. 오각수와 육각수도 되는, 그 다음으로 큰 삼각수를 구하세요. 아.. 이게 삼각수,오각수,육각수 판별식을 사용해서 40755부터 loop를 돌리면 찾으니 답이 안나온다. --; 결국 예전에 썼던 방법중 하나처럼 우선 셋을 만들어 놓고 교차검색. 일단 회사에서 파이썬만으로 풀었고.... 집에서 루비, 펄로풀어야 하는데 Set의 교집합을 어떻게 구현하나.. 더보기
[오일러프로젝트] 44번문제 오각수는 Pn = n (3n − 1)/2 라는 공식으로 구할 수 있고, 처음 10개의 오각수는 다음과 같습니다. 1, 5, 12, 22, 35, 51, 70, 92, 117, 145, ... 위에서 P4 + P7 = 22 + 70 = 92 = P8이 됨을 볼 수 있습니다. 하지만 두 값의 차인 70 − 22 = 48 은 오각수가 아닙니다. 합과 차도 모두 오각수인 두 오각수 Pj, Pk 에 대해서, 그 차이 D = | Pk − Pj | 는 가장 작을 때 얼마입니까? 위키피디아에 오각수를 찾아보면 오각수를 판별하는 공식이 있다. 어떤 수 n에 대해서 x= sqrt(24*n + 1) + 1 / 6에 나오는 x에 대해 x == int(x)를 만족하면 n은 오각수이다. 이것으로 오각수를 판별하고, 차가 가장 작.. 더보기