본문 바로가기

오일러프로젝트

[오일러프로젝트] 52번문제 125874를 2배 하면 251748이 되는데, 이 둘은 같은 숫자로 이루어져 있고 순서만 다릅니다.2배, 3배, 4배, 5배, 6배의 결과도 같은 숫자로 이루어지는 가장 작은 수는 무엇입니까? 그냥.. 뭐 풀은문제..ㅋㅋ Python Ruby Perl 더보기
[오일러프로젝트] 51번문제 13 이라는 두 자리 소수의 첫째 자리 숫자를 여러가지로 바꿨을 때 가능한 결과는 모두 9개이고, 그 중에서 13, 23, 43, 53, 73, 83의 여섯 개가 소수입니다.56003 이라는 소수의 3번째와 4번째 자리는 둘 다 0으로 같은데, 이것을 다른 숫자로 바꿔보면 아래와 같이 모두 10개 중에서 7개가 소수입니다. 이것은 이런 식으로 하여 7개의 소수가 나타나는 첫번째 경우입니다.56003, 56113, 56333, 56443, 56663, 56773, 56993위의 예처럼 원래의 일부를 동일한 숫자로 치환했을 때, 10개 중에서 8개가 소수가 되는 가장 작은 소수를 구하세요. 치환하는 자리는 인접하지 않아도 되고, 가장 앞부분을 치환하는 경우 거기에 0 은 올 수 없습니다. 문제에러.. 8개가.. 더보기
[오일러프로젝트] 50번문제 41은 소수이면서 다음과 같은 6개의 연속된 소수의 합으로도 나타낼 수 있습니다.41 = 2 + 3 + 5 + 7 + 11 + 13이것은 100 이하에서는 가장 길게 연속된 소수의 합으로 이루어진 소수입니다.1000 이하에서는 953이 연속된 소수 21개의 합으로 가장 깁니다.1백만 이하에서는 어떤 소수가 가장 길게 연속되는 소수의 합으로 표현될 수 있습니까? 이거 결국은 풀지못하고 풀이를 찾아본문제... 소수배열 만들어 놓고 for 2개로 돌리면 되기는 하는데 100만이하의 소수면 거의 끝나지도 않을 것 같고...해서 외국 블로거의 풀이를 보고 이를 분석하는 것으로 만족...ㅋ 1~100까지의 예를들면 소수배열 : [2,3,5,7,11,13,17,19,23,29,31...] 각 소수의 합 : [2,5,.. 더보기
[오일러프로젝트] 49번문제 1487, 4817, 8147은 3330씩 늘어나는 등차수열입니다. 이 수열에는 특이한 점이 두 가지 있습니다.세 수는 모두 소수입니다.세 수는 각각 다른 수의 자릿수를 바꿔서 만들 수 있는 순열(permutation)입니다.1자리, 2자리, 3자리의 소수 중에서는 위와 같은 성질을 갖는 수열이 존재하지 않습니다. 하지만 4자리라면 위엣것 말고도 또 다른 수열이 존재합니다.그 수열의 세 항을 이었을 때 만들어지는 12자리 숫자는 무엇입니까? 우선..4자리의 소수들을 구하고 brute-force를 통해서 등차수열을 만족하는 3개의 수를 구하고 그 3개의 수가 순열조합으로 나올 수 있는 수인지 확인... Python 조금 만지면 더 빠르게 될 것 같은데... 일단 skip. 근데 계속 파이썬으로만 풀게되네... 더보기
[오일러프로젝트] 48번문제 11 + 22 + 33 + ... + 1010 = 10405071317 입니다.11 + 22 + 33 + ... + 10001000 의 마지막 10자리 숫자는 무엇입니까? 평이한문제.. 다만 수가 꽤 큰데 오버플로우가 없다..파이썬.. 다른 언어는 어떨라나.. Python Ruby Perl 더보기
[오일러프로젝트] 47번문제. 서로 다른 두 개의 소인수를 갖는 수들이 처음으로 두 번 연달아 나오는 경우는 다음과 같습니다.14 = 2 × 7 15 = 3 × 5서로 다른 세 개의 소인수를 갖는 수들이 처음으로 세 번 연속되는 경우는 다음과 같습니다.644 = 2² × 7 × 23 645 = 3 × 5 × 43 646 = 2 × 17 × 19서로 다른 네 개의 소인수를 갖는 수들이 처음으로 네 번 연속되는 경우를 찾으세요. 그 첫번째 숫자는 얼마입니까? 일단 소인수분해를 하고서로 다른 인수를 구하기 위해 set으로.. 담고4개 이상 나오면 중간에 break..넣어서 속도 상승을 노렸으나점심때 풀어서 돌려놓으니 점심 지나서 끝.. ㅋㅋ일하다가 보니 끝나있어서.. 정확한 시간 측정은 못 함..; Python Ruby Perl 더보기
[오일러프로젝트] 46번문제. 크리스티안 골드바흐는 모든 홀수인 합성수를 (소수 + 2×제곱수)로 나타낼 수 있다고 주장했습니다.9 = 7 + 2×12 15 = 7 + 2×22 21 = 3 + 2×32 25 = 7 + 2×32 27 = 19 + 2×22 33 = 31 + 2×12이 추측은 잘못되었음이 밝혀졌습니다.위와 같은 방법으로 나타낼 수 없는 가장 작은 홀수 합성수는 얼마입니까? 일단 x=a+2*n^2으로 식을 나타내면x는 홀수인 합성수, a는 소수, n은 sqrt(x)보다 작은 수여야 한다는 것을 알 수 있다.x=5부터 loop를 돌리되 x까지의 소수 리스트를 먼저 구한 후sqrt(x)로부터 n의 범위를 정한다음 위 식을 만족하는 수가 하나도 없는 것을 찾아냄 Python Ruby Perl 더보기
[오일러프로젝트] 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은 오각수이다. 이것으로 오각수를 판별하고, 차가 가장 작.. 더보기
[오일러프로젝트] 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 팬디지털을 모두 찾아서 그 합을 구하면 얼마입니까? 팬디지털 생성만 알면 그 다음은 그냥 평이한문제.. 순열을 사.. 더보기