49. 프로젝트 오일러 #49 : 소수 순열
이 문제는 좀 복잡해보이기는 하지만, 실제 풀이과정은 단순한 문제입니다. 세개의 4자리 숫자는 숫자들의 순서만 다르면서 소수인 숫자들입니다. 예를 들어서 1487, 4817, 8147 세 숫자는 1, 4, 7, 8 의 4개의 숫자들을 순서만 달리하면서, 각각이 소수인 숫자들입니다. 이러한 조건을 만족하는 또다른 숫자 조합을 찾으라는 것이 이 문제입니다. (실제 모든 경우를 해도, 4자리 숫자는 예를 든 것과 여기서 원하는 답, 이렇게 두가지밖에 없습니다.) 다음 그림은 프로젝트 오일러 사이트에 있는 문제입니다. 알고리즘을 작성할 때, 4자리로 만드는 순열을 어떻게 만들것인가가 가장 중요했습니다. 모든 경우를 다 찾아봐도 되겠지만, 그러면 경우의 수가 너무 많아집니다. 그래서 제 경우에는 4개의 숫자를 고..
2016. 6. 3.
프로젝트 오일러 #45 삼각수, 오각수, 육각수
삼각수, 오각수, 육각수라는 것은 앞에 #44(http://sdev.tistory.com/224)에서 설명한 것과 같이 도형을 그릴 때, 발생하는 점들의 갯수입니다. 이 문제에서 원하는 것은 40755 다음에 나타나는, 삼각수이자, 오각수, 그리고 육각수인 숫자를 찾는 것입니다. 삼각수를 기준으로 하든지, 육각수를 기준으로 하든지, 다른 숫자들을 맞추어 나가면 됩니다. 간단하게 공차식을 구해서 계산하는 것이 편하겠죠. 그래서 만들어진 소스는 다음과 같습니다. #include #include int main() { uint64_t t = 40755, p = 40755, h = 40755; uint64_t dt = 286, dp = 496, dh = 573; t += dt; dt++; while( 1 ) {..
2016. 5. 27.