분류 전체보기 240

project euler 22. problem

문제 : 여기 5천개 이상의 영문 이름들이 들어있는 46KB짜리 텍스트 파일 names.txt 이 있습니다 (우클릭해서 다운로드 받으세요).이제 각 이름에 대해서 아래와 같은 방법으로 점수를 매기고자 합니다.먼저 모든 이름을 알파벳 순으로 정렬합니다.각 이름에 대해서, 그 이름을 이루는 알파벳에 해당하는 숫자(A=1, B=2, ..., Z=26)를 모두 더합니다.여기에 이 이름의 순번을 곱합니다.예를 들어 "COLIN"의 경우, 알파벳에 해당하는 숫자는 3, 15, 12, 9, 14이므로 합이 53, 그리고 정렬했을 때 938번째에 오므로 최종 점수는 938 × 53 = 49714가 됩니다.names.txt에 들어있는 모든 이름의 점수를 계산해서 더하면 얼마입니까? 123456789101112131415..

project euler 21. problem

문제 : n의 약수들 중에서 자신을 제외한 것의 합을 d(n)으로 정의했을 때,서로 다른 두 정수 a, b에 대하여 d(a) = b 이고 d(b) = a 이면 a, b는 친화쌍이라 하고 a와 b를 각각 친화수(우애수)라고 합니다.예를 들어 220의 약수는 자신을 제외하면 1, 2, 4, 5, 10, 11, 20, 22, 44, 55, 110 이므로 그 합은 d(220) = 284 입니다. 또 284의 약수는 자신을 제외하면 1, 2, 4, 71, 142 이므로 d(284) = 220 입니다. 따라서 220과 284는 친화쌍이 됩니다.10000 이하의 친화수들을 모두 찾아서 그 합을 구하세요. 1234567891011121314151617result = 0 for i in range(2, 10001): s..

project euler 20. problem

문제 : n! 이라는 표기법은 n × (n − 1) × ... × 3 × 2 × 1을 뜻합니다.예를 들자면 10! = 10 × 9 × ... × 3 × 2 × 1 = 3628800 이 되는데, 여기서 10!의 각 자리수를 더해 보면 3 + 6 + 2 + 8 + 8 + 0 + 0 = 27 입니다.100! 의 자리수를 모두 더하면 얼마입니까? 123456789101112131415buf = 1target = 100 for i in range(1, 101): buf *= ibuf = str(buf) print buf result = 0 for i in range(0, len(buf)): result += int(buf[i]) print "result is ", resultcs C:\Users\soicem\De..

project euler 19. problem

문제 : 다음은 달력에 관한 몇 가지 일반적인 정보입니다 (필요한 경우 좀 더 연구를 해 보셔도 좋습니다).1900년 1월 1일은 월요일이다.4월, 6월, 9월, 11월은 30일까지 있고, 1월, 3월, 5월, 7월, 8월, 10월, 12월은 31일까지 있다.2월은 28일이지만, 윤년에는 29일까지 있다.윤년은 연도를 4로 나누어 떨어지는 해를 말한다. 하지만 400으로 나누어 떨어지지 않는 매 100년째는 윤년이 아니며, 400으로 나누어 떨어지면 윤년이다20세기 (1901년 1월 1일 ~ 2000년 12월 31일) 에서, 매월 1일이 일요일인 경우는 총 몇 번입니까? 12345678910111213141516171819202122232425262728293031323334353637383940days..

project euler 18. problem

문제 : 다음과 같이 삼각형 모양으로 숫자를 배열했습니다.3 7 4 2 4 6 8 5 9 3삼각형의 꼭대기부터 아래쪽으로 인접한 숫자를 찾아 내려가면서 합을 구하면, 위의 그림처럼 3 + 7 + 4 + 9 = 23 이 가장 큰 합을 갖는 경로가 됩니다.다음 삼각형에서 합이 최대가 되는 경로를 찾아서 그 합을 구하세요.75 95 64 17 47 82 18 35 87 10 20 04 82 47 65 19 01 23 75 03 34 88 02 77 73 07 63 67 99 65 04 28 06 16 70 92 41 41 26 56 83 40 80 70 33 41 48 72 33 47 32 37 16 94 29 53 71 44 65 25 43 91 52 97 51 14 70 11 33 28 77 73 17 7..

project euler 17. problem

문제 : 1부터 5까지의 숫자를 영어로 쓰면 one, two, three, four, five 이고,각 단어의 길이를 더하면 3 + 3 + 5 + 4 + 4 = 19 이므로 사용된 글자는 모두 19개입니다.1부터 1,000까지 영어로 썼을 때는 모두 몇 개의 글자를 사용해야 할까요?참고: 빈 칸이나 하이픈('-')은 셈에서 제외하며, 단어 사이의 and 는 셈에 넣습니다. 예를 들어 342를 영어로 쓰면 three hundred and forty-two 가 되어서 23 글자, 115 = one hundred and fifteen 의 경우에는 20 글자가 됩니다. 12345678910111213141516171819202122232425262728293031323334353637383940414243444..

project euler 15. problem

문제 : 아래와 같은 2 × 2 격자의 왼쪽 위 모서리에서 출발하여 오른쪽 아래 모서리까지 도달하는 길은 모두 6가지가 있습니다 (거슬러 가지는 않기로 합니다).그러면 20 × 20 격자에는 모두 몇 개의 경로가 있습니까? 123456789import math def X_x_Y(x, y): print math.factorial(x+y) / (math.factorial(x) * math.factorial(y)) x = int(raw_input("x :"))y = int(raw_input("y :"))X_x_Y(x, y) Colored by Color Scriptercs cnsl@ubuntu:/tmp$ python test.pyx :20y :20137846528820

project euler 14. problem

문제 : 양의 정수 n에 대하여, 다음과 같은 계산 과정을 반복하기로 합니다.n → n / 2 (n이 짝수일 때) n → 3 n + 1 (n이 홀수일 때)13에 대하여 위의 규칙을 적용해보면 아래처럼 10번의 과정을 통해 1이 됩니다.13 → 40 → 20 → 10 → 5 → 16 → 8 → 4 → 2 → 1아직 증명은 되지 않았지만, 이런 과정을 거치면 어떤 수로 시작해도 마지막에는 1로 끝나리라 생각됩니다. (역주: 이것은 콜라츠 추측 Collatz Conjecture이라고 하며, 이런 수들을 우박수 hailstone sequence라 부르기도 합니다)그러면, 백만(1,000,000) 이하의 수로 시작했을 때 1까지 도달하는데 가장 긴 과정을 거치는 숫자는 얼마입니까?참고: 계산 과정 도중에는 숫자가..

project euler 13. problem

문제 : 아래에 50자리 숫자가 100개 있습니다. 이것을 모두 더한 값의 첫 10자리는 얼마입니까? 123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109str = '''37107287533902102798797998220837590246510135740250463769376774900097126481248969700780504170182605387432498619952..