본문 바로가기

팬디지털3

[C/C++] 프로젝트 오일러 #41 : 팬디지털 소수 이 문제의 난이도 5%입니다. 그렇게 어렵지 않은 문제이죠.문제를 살펴보면 다음과 같습니다.우리는 1부터 n까지 정확하게 한번씩만 사용한 n자리 숫자가 있다면, 이것을 팬디털(pandigital) 숫자라고 부릅니다. 예를 들어서 2143은 4자리 팬디지털 숫자이면서, 또한 소수입니다.가장 큰 n자리 팬디지털 소수는 얼마일까요?일단 팬디지털이라는 것을 알았으면, 우리는 간단하게 1~9까지 한번만 사용해서 이 숫자를 구하면 됩니다.팬디지털을 만들 수 있는 가장 큰 자릿수는 9자리입니다. 왜냐하면 그 이상부터는 두자리숫자가 될 수밖에 없기 때문에 팬디지털 정의에 어긋납니다.프로그램은 9자릿수부터 만들 수 있는 모든 팬디지털수를 만듭니다. (사실 이것을 1부터 n까지 배열하는 순열수입니다.) 순열 수 중에 사실.. 2015. 10. 27.
[C/C++] 프로젝트 오일러 #38 : 팬디지털 곱하기 Project Euler 문제 38번에서는 “팬디지털 수”와 “곱셈 연산”의 개념을 활용하여 특정 조건을 만족하는 가장 큰 수를 찾는 것이 목표입니다. 팬디지털 수란 각 숫자가 1부터 9까지 한 번씩만 등장하는 수를 의미합니다. 예를 들어, 192384576은 1부터 9까지의 숫자가 모두 포함되어 있으므로 팬디지털 수라고 할 수 있습니다. 문제에서는 특정 정수 n 과 정수 k 를 선택하여, \( n \times 1 \), \( n \times 2 \), \( n \times 3 \), …, \( n \times k \)로 만들어진 수를 이어붙였을 때 팬디지털 수가 되는지를 확인하도록 요구하고 있습니다. 또한, 이 과정에서 만들어질 수 있는 가장 큰 팬디지털 수를 구하는 것이 목표입니다. 예를 들어, n .. 2015. 4. 20.
[C/C++] 프로젝트 오일러 #32 : 팬디지털 곱 프로젝트 오일러 #32 문제는 어려움 정도가 5%라 상당히 난이도가 낮은 문제네요. 팬디지털 숫자란 특정 범위의 모든 숫자를 한 번씩만 사용하여 구성된 숫자입니다. 예를 들어, 1부터 9까지의 숫자를 모두 한 번씩 포함한 조합(예: 123456789, 391867254 등)은 팬디지털이라고 부릅니다. 이 문제에서는 1부터 9까지의 숫자를 정확히 한 번씩만 사용해야 한다는 조건이 주어집니다.문제의 목표는 1부터 9까지의 숫자를 사용해 \(a \times b = c\) 형태의 곱셈식을 만들고, a, b, c를 모두 이어 붙였을 때 1부터 9까지의 모든 숫자를 포함하도록 하는 조합을 찾는 것입니다. 예를 들어, \(39 \times 186 = 7254\)는 39, 186, 7254를 합쳐 391867254라는.. 2015. 4. 13.