콘텐츠로 건너뛰기
Home » 스터디 » Project Euler » Page 5

Project Euler

오일러 프로젝트의 문제 풀이. 주로 파이썬과 Swift로 풀이합니다. (Python 3.6, Swift 4.0)

오일러 프로젝트 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 | 는 가장 작을 때 얼마입니까?

http://euler.synap.co.kr/prob_detail.php?id=44
더 보기 »오일러 프로젝트 44

오일러 프로젝트 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 → 13으로 나누어 떨어짐
d8 d9 d10 = 289 → 17로 나누어 떨어짐

위와 같은 성질을 갖는 0 ~ 9 팬디지털을 모두 찾아서 그 합을 구하면 얼마입니까?

http://euler.synap.co.kr/prob_detail.php?id=43
더 보기 »오일러 프로젝트 43

오일러 프로젝트 42

n번째 삼각수는 tn = ½ n (n + 1) 이라는 식으로 구할 수 있는데, 처음 10개는 아래와 같습니다.

1, 3, 6, 10, 15, 21, 28, 36, 45, 55, …

어떤 영어 단어에 대해서, 각 철자의 알파벳 순서(A=1, B=2, …, Z=26)를 모두 더한 값을 ‘단어값’이라 부르기로 합니다. 예를 들어 ‘SKY’의 단어값은 19 + 11 + 25 = 55가 되는데, 이것은 우연히도 t10과 같습니다. 이렇게 어떤 단어의 단어값이 삼각수일 경우에는 이 단어를 ‘삼각단어’라 부르기로 합니다.

약 16KB의 텍스트 파일 words.txt에는 2000개 정도의 영어 단어가 수록되어 있습니다. 이 중에서 삼각단어는 모두 몇 개입니까?  

http://euler.synap.co.kr/prob_detail.php?id=42
더 보기 »오일러 프로젝트 42

오일러 프로젝트 40

소수점 뒤에 양의 정수를 차례대로 붙여 나가면 아래와 같은 무리수를 만들 수 있습니다. 0.123456789101112131415161718192021…. 이 무리수의 소수점 아래 12번째 자리에는 1이 옵니다. 소수점 아래 n번째 숫자를 dn이라고 했을 때, 아래 식의 값은 얼마입니까?

d1 x d10 x d100 x d1,000 x d10,000 x d100,000 x d1,000,000

http://euler.synap.co.kr/prob_detail.php?id=40
더 보기 »오일러 프로젝트 40

오일러 프로젝트 39

세 변의 길이가 모두 자연수 {a, b, c}인 직각삼각형의 둘레를 p 로 둘 때, p = 120 을 만족하는 직각삼각형은 아래와 같이 세 개가 있습니다.

{20, 48, 52}, {24, 45, 51}, {30, 40, 50}

p가 1000이하일 때, 세변의 길이가 모두 자연수인 직각삼각형을 가장 많이 만들 수 있는 p의 값은 얼마입니까?

http://euler.synap.co.kr/prob_detail.php?id=39
더 보기 »오일러 프로젝트 39

오일러 프로젝트 38

수 192에 1, 2, 3을 각각 곱합니다.

\begin{align}
192 \times 1 &= 192 \\
192 \times 2 &= 384 \\
192 \times 3 &= 576
\end{align}

곱한 결과를 모두 이어보면 102384576이고, 이것은 1-9 팬디지털(pandigital) 수입니다. 이런 과정을 편의상 ‘곱해서 이어붙이기’라고 부르기로 합니다.

같은 식으로 9와 (1, 2, 3, 4, 5)를 곱해서 이어붙이면 918273645라는 1-9 팬디지털 수를 얻습니다. 어떤 정수와 (1, 2, 3, …, n)을 곱해서 이어붙였을 때 얻을 수 있는 가장 큰 아홉자리의 1-9 팬디지털 수는 무엇입니까? (단 n > 1)

https://euler.synap.co.kr/prob_detail.php?id=38
더 보기 »오일러 프로젝트 38

오일러 프로젝트 37

소수 3797에는 왼쪽부터 자리수를 하나씩 없애거나 (3797, 797, 97, 7), 오른쪽부터 없애도 (3797, 379, 79, 7) 모두 소수가 되는 성질이 있습니다. 이런 성질을 가진 소수는 단 11개만이 존재합니다. 이것을 모두 찾아서 합을 구하세요. (참고, 한자리 소수인 2, 3, 5, 7 은 제외합니다.)

http://euler.synap.co.kr/prob_detail.php?id=37
더 보기 »오일러 프로젝트 37

오일러 프로젝트 35

소수 중에서 각 자리의 숫자들을 순환시켜도 여전히 소수인 것을 circular prime이라고 합니다. 예를 들어 197은 971, 719가 모두 소수이므로 여기에 해당합니다. 이런 소수는 100 밑으로 2, 3, 5, 7, 11, 13, 17, 31, 37, 71, 73, 79, 97 처럼 13개가 있습니다. 그러면 1,000,000 밑으로는 모두 몇 개나 있을까요? http://euler.synap.co.kr/prob_detail.php?id=35 접근 백만 아래에서 순환하는 모든 소수를 찾아야 한다. 기본적인 범위가 백만 단위이고 수행해야 할 연산도 많기 때문에 만만치 않은 문제인 것처럼 보인다. 일단 범위를 줄이는 것 대신에 숫자를 한자리씩 순환시키는 숫자를… 더 보기 »오일러 프로젝트 35