팩토리얼3 #74 자릿수 팩토리얼 연결 고리 10진수의 수를 각각의 자릿수를 분해해서 재조합하다보면 재미있는 수를 얻을 수 있습니다. 예를 들어서 145라는 수를 분해해서 팩토리얼을 취한후 합해보면, \(145 \to 1! + 4! + 5! = 1+24+120=145\)라는 결과를 얻게 됩니다. 이와 같이 같은 수가 나올 수 있지만, 어떤 수는 위의 작업을 반복하다보면, 자신의 수가 되기도 하고 중간에 나왔던 수가 되어 싸이클을 반복할 수도 있습니다. 이 문제는 이러한 수들의 연결고리가 반복되기 전까지 얼마나 오래 가는가에 대한 문제입니다. 난이도 15% 정도로 구현에 어려움이 없는 문제입니다. 문제의 링크입니다. https://projecteuler.net/problem=74 Problem 74 - Project Euler The number 1.. 2019. 12. 27. [C/C++] 프로젝트 오일러 #24 : 백만번째 순열 수 구하기 프로젝트 오일러 #24 백만번째 순열 수 구하기 문제는 0부터 9까지의 숫자로 이루어진 모든 순열(permutation)을 사전 순서(lexicographic order)로 정렬했을 때, 백만 번째 순열을 구하라는 것입니다. 우리가 진법을 계산할 때, 과연 어떻게 할까요?예를 들어서 723 을 8진법으로 계산한다면요?이 계산을 위해서 우리는 나누기 연산을 계속 하게 됩니다. 중학교 수학을 들추어 보면 보통 다음과 같이 계산을 합니다.으로 723은 8진수로 \(1323_8\)으로 표시가 됩니다. 이것을 수식으로 표현하면 다음과 같이 표현할 수 있습니다.\[ 723 = 1 \cdot 8^3 + 3 \cdot 8^2 + 2 \cdot 8^1 + 3 \cdot 8^0 \]이야기는 우리는 8의 3승부터 차례로 .. 2015. 1. 27. [C/C++] 프로젝트 오일러 #20 : 100!의 모든 자릿수 합 구하기 Factorial Digit Sum 문제는 주어진 수의 팩토리얼을 계산하고, 그 결과값에 포함된 모든 자릿수의 합을 구하는 문제입니다. 예를 들어, 10! (10 팩토리얼)은 \(10 \times 9 \times 8 \times \cdots \times 1 = 3,628,800이고, 이 결과값의 자릿수 합은 3 + 6 + 2 + 8 + 8 + 0 + 0 = 27\)입니다. 문제에서는 100!의 결과값에 포함된 자릿수의 합을 구하라는 질문을 제시합니다. 이 문제는 매우 큰 수를 다루기 때문에 정수 연산과 효율적인 계산을 요구합니다. 알고리즘에서 가장 큰 알고리즘을 분류하는 것 중에, 기하급수보다 더 큰 것이 있다면, 모든 경우의 수를 조사하는 팩토리얼(factorial)일겁니다. 뭐 이것보다 더 큰 .. 2015. 1. 17. 이전 1 다음