Posts

프로젝트 오일러 36

10진법과 2진법으로 모두 대칭수인 1,000,000 이하 숫자의 합

문제 자세히 보기: [국어] [영어]

어떤 수가 대칭인지 확인하는 방법은 이미 문제 4에서 설명했다. 이진수는 어차피 문자열로 표현해야 하므로 여기서는 다음과 같이 문자열을 인자로 받아 대칭인지 확인하는 함수를 만들어 두는 것이 좋겠다.

Read more...

프로젝트 오일러 35

백만 이하인 circular prime 개수 구하기

문제 자세히 보기: [국어] [영어]

백만 이하의 소수는 clojure.contrib.lazy-seqsprimes를 이용해 구할 수 있다. digits를 이용해 숫자의 시퀀스를 만들고 cyclepartition을 이용하면 순환수(circular number)도 쉽게 구할 수 있다.

Read more...

프로젝트 오일러 34

각 자릿수의 팩토리얼을 더했을 때 자기 자신이 되는 수들의 합은?

문제 자세히 보기: [국어] [영어]

먼저 각 자릿수의 팩토리얼을 더한 값을 구하는 함수는 다음과 같이 작성할 수 있다.

Read more...

프로젝트 오일러 33

이상한 방법으로 약분할 수 있는 분수 찾기

문제 자세히 보기: [국어] [영어]

값이 1보다 작고 분모와 분자가 모두 두 자릿수인 분수는 모두 4005개다. 이 정도라면 그냥 루프를 돌려 확인해도 금방 답을 찾을 수 있다. 이상한 방법으로 약분하는 함수는 다음과 같이 작성할 수 있다. n은 numerator, 즉 분자를 나타내며, d는 denominator, 즉 분모를 나타낸다.

Read more...

프로젝트 오일러 32

1~9 팬디지털 곱셈식을 만들 수 있는 모든 수의 합

문제 자세히 보기: [국어] [영어]

a \times b = c 가 1-9 팬디지털이 되려면 다음과 같은 이유로 c 가 네 자리 숫자여야 한다.

Read more...

프로젝트 오일러 31

영국 화폐 액면가를 조합하는 방법의 수

문제 자세히 보기: [국어] [영어]

재귀를 이용하면 쉽게 풀 수 있다. 동전의 종류를 숫자 1, 2, ...로 표현하면 문제를 풀 때 도움이 된다. 따라서 다음과 같이 종류 숫자를 인자로 주면 동전 값을 리턴하는 함수를 만들 수 있다.

Read more...

프로젝트 오일러 30

각 자리 숫자를 5제곱해서 더했을 때 자기 자신이 되는 수들의 합은?

문제 자세히 보기: [국어] [영어]

이 문제는 무차별 대입법으로 풀 수 있다. 다만 루프를 무한히 반복하지 않으려면 상한을 알아야 한다. 6자리 수 중 가장 큰 정수는 999,999다. 이 수의 각 자리 숫자를 5제곱해 더하면 354,294가 된다. 즉 6자리 수 중 가장 큰 정수의 각 자릿수를 5제곱해 더해도 354,294보다 큰 수는 못 만든다는 뜻이다.

Read more...

Emacs를 쓰는 이유?

Emacs를 쓰는 이유가 뭘까? 현대적 에디터와 비교해보면 투박하기 짝이 없는 이 구닥다리 에디터를 여지껏 사용하는 이유가 뭘까? 한참을 생각해 보았지만 명확한 이유를 설명할 수 없다.

Read more...

프로젝트 오일러 29

2 \le a \le 100 이고 2 \le b \le 100 a , b 로 만들 수 있는 a^b 의 개수

문제 자세히 보기: [국어] [영어]

a 가 대략 100가지, b 가 대략 100가지이므로 a^b 는 대략 10,000가지 수가 나올 것이다. 여기서 중복을 제거하면 답을 구할 수 있다.

Read more...

프로젝트 오일러 28

1001×1001 나선모양 행렬에서 대각선 원소의 합은?

문제 자세히 보기: [국어] [영어]

대각선 원소에 대한 공식을 구하면 쉽게 문제를 풀 수 있다. 첫 번째 링의 요소는 다음과 같다.

%math \begin{matrix} 7 & 8 & 9 \newline 6 & & 2 \newline 5 & 4 & 3 \end{matrix}

여기서 대각선 요소를 작은 수부터 나열하면 3, 4, 7, 9다.

Read more...