project euler 45

오일러 프로젝트 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 가 됩니다. 오각수와 육각수도 되는, 그 다음으로 큰 삼각수를 구하세요. http://euler.synap.co.kr/prob_detail.php?id=45 모든 육각수는 그 자체로 삼각수이므로, 오각수가

project euler 44

오일러 프로젝트 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 | 는

project euler 43

오일러 프로젝트 43 번 숫자 1406357289은 0 ~ 9 팬디지털인데, 부분열에 관련된 재미있는 성질을 가지고 있습니다. d1을 첫째 자리수, d2를 둘째 자리수…라고 했을 때, 다음과 같은 사실을 발견할 수 있습니다. d2 d3 d4 = 406 → 2로 나누어 떨어짐 d3 d4 d5 = 063 → 3으로 나누어 떨어짐 d4 d5 d6 = 635 → 5로 나누어 떨어짐 d5 d6 d7 = 357 → 7로 나누어 떨어짐 d6 d7 d8 = 572 → 11로 나누어 떨어짐 d7 d8 d9 = 728

project euler 41

오일러 프로젝트 41 번 1부터 n까지의 숫자를 하나씩만 써서 만든 n자리 숫자를 팬디지털(pandigital)이라고 부릅니다. 2143은 4자리 팬디지털인데, 이 수는 동시에 소수이기도 합니다. n자리 팬디지털 소수 중에서 가장 큰 수는 무엇입니까? http://euler.synap.co.kr/prob_detail.php?id=41 9자리 팬디지털 숫자의 각 자리 숫자의 합은 45로 이는 3의 배수가 됨을 알 수 있다. 8자리 팬디지털 숫자의 경우에 각 자리 수의 합 역시 3의 배수이다. 따라서 가장 큰 팬디지털 소수는 최대 7자리에서부터 있을 수 있다. 이는 1~7의 숫자를 순열로 만들어 큰 숫자부터 소수인지 검사해 내려가면 된다.

project euler 40

오일러 프로젝트 40 번 소수점 뒤에 양의 정수를 차례대로 붙여 나가면 아래와 같은 무리수를 만들 수 있습니다. 0.123456789101112131415161718192021… 이 무리수의 소수점 아래 12번째 자리에는 1이 옵니다 (위에서 붉게 표시된 숫자). 소수점 아래 n번째 숫자를 dn이라고 했을 때, 아래 식의 값은 얼마입니까? d1 × d10 × d100 × d1000 × d10000 × d100000 × d1000000 http://euler.synap.co.kr/prob_detail.php?id=40 파이썬의 제너레이터를 이용하여 문제의 조건에 만족하는 글자를 체크하면서 정해진 순번의 글자의 숫자값만 곱해나가면 금방 풀 수 있다. def gen(): i = 1 while 1: s