오일러 프로젝트 021

오일러 프로젝트 21번째 문제. 이번 문제는 친화수(친화쌍)에 관한 문제이다. 어떤 수의 약수의 합을 빠르게 구하는 것에 초점을 맞춰야 한다. 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의 약수는

오일러 프로젝트 014

오일러 프로젝트 014 백만 이하로 시작하는 우박수 중 가장 긴 과정을 거치는 것 http://euler.synap.co.kr/prob_detail.php?id=14 양의 정수 n에 대하여, 다음과 같은 계산 과정을 반복하기로 합니다. n → n / 2 (n이 짝수일 때) n → 3 n + 1 (n이 홀수일 때) 13에 대하여 위의 규칙을 적용해보면 아래처럼 10번의 과정을 통해 1이 됩니다. 13 → 40 → 20 → 10 → 5 → 16 → 8 → 4 → 2 → 1 아직 증명은 되지 않았지만, 이런 과정을 거치면 어떤 수로

오일러 프로젝트 011

오일러 프로젝트 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

오일러 프로젝트 010

오일러 프로젝트 10번 10 이하의 소수를 모두 더하면 2 + 3 + 5 + 7 = 17 이 됩니다. 이백만(2,000,000) 이하 소수의 합은 얼마입니까? (http://euler.synap.co.kr/prob_detail.php?id=10) 지난 번에 만든 isPrime() 함수를 이용해서 다음과 같이 풀면 되는데… print sum((x for x in range(2000000+1) if isPrime(x)))