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

project euler 39

오일러 프로젝트 39 번 세 변의 길이가 모두 자연수 {a, b, c}인 직각삼각형의 둘레를 p 로 둘 때, p = 120 을 만족하는 직각삼각형은 아래와 같이 세 개가 있습니다. {20, 48, 52}, {24, 45, 51}, {30, 40, 50} 1000 이하의 둘레 p에 대해서, 직각삼각형이 가장 많이 만들어지는 p의 값은 얼마입니까? http://euler.synap.co.kr/prob_detail.php?id=39 a, b, c 가 삼각형의 변의 길이이고, 중복은 제거하므로 편의상 a < b < c의 관계를 설정하여 계산량을 줄이고 범위를 쉽게 한 정할 수 있다. 1 <= a <

project euler 38

오일러 프로젝트 38 번 숫자 192에 1, 2, 3을 각각 곱합니다. 192 × 1 = 192 192 × 2 = 384 192 × 3 = 576 곱한 결과를 모두 이어보면 192384576 이고, 이것은 1 ~ 9 팬디지털(pandigital)인 숫자입니다. 이런 과정을 편의상 ‘곱해서 이어붙이기’라고 부르기로 합니다. 같은 식으로 9와 (1, 2, 3, 4, 5)를 곱해서 이어붙이면 918273645 라는 1 ~ 9 팬디지털 숫자를 얻습니다. 어떤 정수와 (1, 2, … , n)을 곱해서 이어붙였을 때 얻을 수 있는 가장 큰 아홉자리의 1