본문 바로가기

오일러프로젝트

[오일러프로젝트] 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개 이상의 약수를 갖는 가장 작은 삼각수는 얼마입니까? 소인수의 개수와 약수의 개수를 헷갈려서 맥북 이륙 좀 시키다가 이상하다 싶어.. 더보기
[오일러프로젝트] 11번문제 아래와 같은 20×20 격자가 있습니다. 08 02 22 97 38 15 00 40 00 75 04 05 07 78 52 12 50 77 91 08 49 49 99 40 17 81 18 57 60 87 17 40 98 43 69 48 04 56 62 00 81 49 31 73 55 79 14 29 93 71 40 67 53 88 30 03 49 13 36 65 52 70 95 23 04 60 11 42 69 24 68 56 01 32 56 71 37 02 36 91 22 31 16 71 51 67 63 89 41 92 36 54 22 40 40 28 66 33 13 80 24 47 32 60 99 03 45 02 44 75 33 53 78 36 84 20 35 17 12 50 32 98 81 28 64 .. 더보기
[오일러프로젝트] 10번문제 10 이하의 소수를 모두 더하면 2 + 3 + 5 + 7 = 17 이 됩니다. 이백만(2,000,000) 이하 소수의 합은 얼마입니까? 7번에서 다른 분의 소스를 인용하여 빠르게 수정 Python Ruby 다른 글타래를 보니 에라토스테네스의_체라는 것을 사용하여 알고리즘을 구현한 것이 있다. http://ko.wikipedia.org/wiki/%EC%97%90%EB%9D%BC%ED%86%A0%EC%8A%A4%ED%85%8C%EB%84%A4%EC%8A%A4%EC%9D%98_%EC%B2%B4 수학이 이렇게 흥미로운거였나..헐.. Perl 더보기
[오일러프로젝트] 9번문제 세 자연수 a, b, c 가 피타고라스 정리 a2 + b2 = c2 를 만족하면 피타고라스 수라고 부릅니다 (여기서 a 더보기
[오일러프로젝트] 8번문제 다음은 연속된 1000자리 숫자입니다 (읽기 좋게 50자리씩 잘라놓음). 73167176531330624919225119674426574742355349194934 96983520312774506326239578318016984801869478851843 85861560789112949495459501737958331952853208805511 12540698747158523863050715693290963295227443043557 66896648950445244523161731856403098711121722383113 62229893423380308135336276614282806444486645238749 30358907296290491560440772390713810515859307960866 .. 더보기
[오일러프로젝트] 7번문제 소수를 크기 순으로 나열하면 2, 3, 5, 7, 11, 13, ... 과 같이 됩니다. 이 때 10,001번째의 소수를 구하세요. Python 다른 사람의 풀이. 위 풀이보다 수백배는 빠른듯. 근데 제곱근을 사용해서 소수의 탐색 범위를 줄이는 방식인데 이 방식이 완전하지 않다고 어디서 본 것 같은데 암튼 답은 빠르게 뛰어나옴 Ruby Perl 더보기
[오일러프로젝트] 6번문제 1부터 10까지 자연수를 각각 제곱해 더하면 다음과 같습니다 (제곱의 합). 12 + 22 + ... + 102 = 385 1부터 10을 먼저 더한 다음에 그 결과를 제곱하면 다음과 같습니다 (합의 제곱). (1 + 2 + ... + 10)2 = 552 = 3025 따라서 1부터 10까지 자연수에 대해 "제곱의 합"과 "합의 제곱"의 차는 3025 - 385 = 2640 이 됩니다. 그러면 1부터 100까지 자연수에 대해 "제곱의 합"과 "합의 제곱"의 차는 얼마입니까? 왠지 공식을 풀어 놓으면 뭔가 다른 하나의 식으로 나올 수 있을 것 같은데.... 그냥 여전히 심플하게... Python Ruby 사이트가 오래된 외국 오리지널 사이트에 확실히 좀 더 다양한 코드와 글타래들이 남아있다. 6번까지 풀면서 .. 더보기
[오일러프로젝트] 5번문제 1 ~ 10 사이의 어떤 수로도 나누어 떨어지는 가장 작은 수는 2520입니다. 그러면 1 ~ 20 사이의 어떤 수로도 나누어 떨어지는 가장 작은 수는 얼마입니까? 알고리즘 : 그런거 없습니다. 그냥 나올때까지 돌립니다. --; Python Ruby Perl 더보기
[오일러프로젝트] 4번문제 앞에서부터 읽을 때나 뒤에서부터 읽을 때나 모양이 같은 수를 대칭수(palindrome)라고 부릅니다. 두 자리 수를 곱해 만들 수 있는 대칭수 중 가장 큰 수는 9009 (= 91 × 99) 입니다. 세 자리 수를 곱해 만들 수 있는 가장 큰 대칭수는 얼마입니까? #Python #Ruby 두 언어를 모두 배우는 중입니다. 더 좋은 코드와 솔루션 있으시면 알려주시면 감사하겠습니다. :) 루비와 파이썬의 접근 방식이 많이 다른 것 같다.같이 공부하기 힘드네 --; Perl 더보기
[오일러프로젝트] 3번문제 어떤 수를 소수의 곱으로만 나타내는 것을 소인수분해라 하고, 이 소수들을 그 수의 소인수라고 합니다. 예를 들면 13195의 소인수는 5, 7, 13, 29 입니다. 600851475143의 소인수 중에서 가장 큰 수를 구하세요. Python Ruby 언어를 익히는 중이라 그냥 돌직구 스타일로 문제해결 -_- 다른 사람들의 풀이를 보니 몹시 부끄럽다. ㅋ 그리고 이게 맞는 코드인지도 모르겠음..ㅋ 어쩌다 우연히 저 문제에만 딱 맞았을지도..ㅋㅋ Perl 더보기