저는 위키백과의 저 정의에 의문을 제기합니다. 뭔가 엄밀하게 정의하려고 하지 않은 문장 같네요. 같은 문서의 밑에 "By the fundamental theorem of arithmetic, every positive integer has a unique prime factorization."라는 문장이 있는데, 소인수분해를 합성수에 대해서만 정의하면 이 문장은 틀리게 됩니다.
https://en.wikipedia.org/wiki/... 은 "Writing a number as a product of prime numbers is called a prime factorization of the number."라고 하고 있습니다. 이 정의에 따르면 1을 소인수분해하려면 아무 소수도 곱하지 않아야 하고, 따라서 출력이 없어야 합니다.
그렇긴 하나, 1을 조건에서 제외하는 것도 나쁘진 않을 것 같습니다.
kuro11pow2 3년 전
위키피디아에 따르면 소인수분해는 다음과 같습니다.
In number theory, integer factorization is the decomposition of a composite number into a product of smaller integers. If these factors are further restricted to prime numbers, the process is called prime factorization.
따라서 소인수분해는 합성수가 아닌 수에 대해서는 정의되지 않습니다. 즉, 소인수분해가 불가능합니다.
출제자의 요구는 소인수분해의 결과를 출력하는 것인데 소인수분해가 되지 않을 경우 어떻게 해야 할까요?
그래서 예시를 살펴보았습니다. 예시에서는 소인수분해가 불가능한 경우 입력 그대로를 출력하고 있습니다.
따라서 1의 경우 소인수분해가 불가능하므로 1을 출력해야 옳습니다.
그러나 현재 1은 1을 출력시 오답처리가 되고 있습니다.
주어진 조건에서 1을 출력해야 하지 않을 이유를 찾을 수 없습니다.
따라서 다음 문구를 추가하거나 입력에서 1을 제외하여 주시기 바랍니다.
"입력이 소수이고 소인수분해되지 않을 경우 입력을 그대로 출력한다"
오답: 22664708