오일러 프로젝트 66

오일러 프로젝트 66번 문제는 펠 방정식의 최소해에 관한 문제이다. 나이브하게 접근했다가는 결코 풀어낼 수 없을 수준으로 시간이 많이 걸린다. 그리고 그나마 빠른 해법 역시 구현하기 위해 여러 가지 지식과 스킬이 동원된다.  접근 방법을 알고 있더라도 구현이 만만치 않은, 1번부터 현재까지는 최고 난이도의 문제라 할 수 있다. 통상 오일러 프로젝트의 문제들은 순서에 맞게 풀어나갈 필요는 없지만,

Swift – 큰 수의 덧셈과 곱셈 구현하기

프로젝트 오일러의 몇몇 문제는 큰 수의 덧셈이나 곱셈의 계산이 필요한 경우가 있다. 파이썬이나 하스켈과 같이 정수타입이 기본적으로 바이트 크기의 제약이 없는 언어에서는 이는 별다른 문제가 되지 않지만, 그외의 언어에서는 좀 까다로운 문제가 된다.  예를 들어 50자리 숫자 100개의 합을 계산하는 문제 같은 경우에 파이썬에서는 50자 짜리 숫자 문자열을 int 타입으로 캐스팅해서 합해버리면 그만이지만, Swift와 같은

오일러 프로젝트 20

이번 문제는 100!의 모든 자리수 숫자들의 합을 구하는 것이다.   n! 이라는 표기법은 n × (n − 1) × … × 3 × 2 × 1을 뜻합니다. 예를 들자면 10! = 10 × 9 × … × 3 × 2 × 1 = 3628800 이 되는데, 여기서 10!의 각 자리수를 더해 보면 3 + 6