문제풀이/프로젝트 오일러 7

[Project Euler]프로젝트 오일러 Problem 8 (1000자리 숫자 안에서 이어지는 5자리 숫자의 곱 중 최대값은?)

설명 http://euler.synap.co.kr/ 8번 문제입니다. 문제 다음은 연속된 1000자리 숫자입니다 (읽기 좋게 50자리씩 잘라놓음). 73167176531330624919225119674426574742355349194934 96983520312774506326239578318016984801869478851843 85861560789112949495459501737958331952853208805511 12540698747158523863050715693290963295227443043557 66896648950445244523161731856403098711121722383113 62229893423380308135336276614282806444486645238749 303589072..

[Project Euler]프로젝트 오일러 Problem 7 (10001번째의 소수)

설명 http://euler.synap.co.kr/ 7번 문제입니다. 문제 소수를 크기 순으로 나열하면 2, 3, 5, 7, 11, 13, ... 과 같이 됩니다. 이 때 10,001번째의 소수를 구하세요. 코드파이썬 2.7 123456789101112def is_sosu(n): for i in range(2,n): if n%i == 0: return 0 return 1 count = 0for i in range(2,1000000): if is_sosu(i): count+=1 if count == 10001: print ics 할말별다른 알고리즘을 사용하지 않아서 1~2분 걸립니다. 2의배수 3의배수 등을 걸러내면 속도가 조금 줄어듭니다.

[Project Euler]프로젝트 오일러 Problem 6 (1부터 100까지 "제곱의 합"과 "합의 제곱"의 차는?)

설명 http://euler.synap.co.kr/ 6번 문제입니다. 문제 1부터 10까지 자연수를 각각 제곱해 더하면 다음과 같습니다 (제곱의 합). 1^2 + 2^2 + ... + 10^2 = 385 1부터 10을 먼저 더한 다음에 그 결과를 제곱하면 다음과 같습니다 (합의 제곱). (1 + 2 + ... + 10)^2 = 55^2 = 3025 따라서 1부터 10까지 자연수에 대해 "합의 제곱"과 "제곱의 합" 의 차이는 3025 - 385 = 2640 이 됩니다. 그러면 1부터 100까지 자연수에 대해 "합의 제곱"과 "제곱의 합"의 차이는 얼마입니까? 코드파이썬 2.7 123456result = 0result2 = 0for i in range(1,100): result += i**2 result2..

[Project Euler]프로젝트 오일러 Problem 5 (1 ~ 20 사이의 어떤 수로도 나누어 떨어지는 가장 작은 수)

설명 http://euler.synap.co.kr/ 5번 문제입니다. 문제 1 ~ 10 사이의 어떤 수로도 나누어 떨어지는 가장 작은 수는 2520입니다. 그러면 1 ~ 20 사이의 어떤 수로도 나누어 떨어지는 가장 작은 수는 얼마입니까? 코드파이썬 2.7 123456for i in range(20,1000000000,20): for a in range(1,20): if i%a != 0: break if a >= 19: print i

[Project Euler]프로젝트 오일러 Problem 4 (세자리 수를 곱해 만들 수 있는 가장 큰 대칭수)

설명 http://euler.synap.co.kr/ 4번 문제입니다. 문제 앞에서부터 읽을 때나 뒤에서부터 읽을 때나 모양이 같은 수를 대칭수(palindrome)라고 부릅니다. 두 자리 수를 곱해 만들 수 있는 대칭수 중 가장 큰 수는 9009 (= 91 × 99) 입니다. 세 자리 수를 곱해 만들 수 있는 가장 큰 대칭수는 얼마입니까? 코드 파이썬 2.71234567891011121314def is_palin(n): length = len(str(n))/2 for i in range(0,length): if str(n)[i] != str(n)[-i-1]: return 0 return 1 result = 0 for a in range(100,1000): for b in range(100,1000): i..

[Project Euler]프로젝트 오일러 Problem 2 (피보나치 수열에서 4백만 이하이면서 짝수인 항의 합)

설명 http://euler.synap.co.kr/ 2번 문제입니다. 문제 피보나치 수열의 각 항은 바로 앞의 항 두 개를 더한 것이 됩니다. 1과 2로 시작하는 경우 이 수열은 아래와 같습니다. 1, 2, 3, 5, 8, 13, 21, 34, 55, 89, ... 짝수이면서 4백만 이하인 모든 항을 더하면 얼마가 됩니까? 코드파이썬 2.7 1234567891011121314151617a = 0b = 1chk = 0tmp = 0result = 0while a

[Project Euler]프로젝트 오일러 Problem 1 (1000보다 작은 자연수 중에서 3 또는 5의 배수를 모두 더하면?)

설명 http://euler.synap.co.kr/ 1번 문제입니다. 문제 10보다 작은 자연수 중에서 3 또는 5의 배수는 3, 5, 6, 9 이고, 이것을 모두 더하면 23입니다.1000보다 작은 자연수 중에서 3 또는 5의 배수를 모두 더하면 얼마일까요? 코드12345result = 0for i in range(1000): if i%3==0 or i%5==0: result+= iprint resultcs