아니요, 바로 세 번째 글에 반례가 있습니다.
1037번 - 약수
1
3
이면
6이 답 아닌가요??
이제 틀린걸 알아서 2가지 경우로 나눴습니다.
- 약수가 1개인 경우 : 약수가 1개이므로 해당 숫자는 반드시 소수여야 합니다 따라서 제곱한 값이 답입니다.
- 약수가 2개 이상인 경우 : 최소공배수가 답이어야 하는데 가장 큰 숫자와 최소공배수가 같을 경우 A=N이므로 최소공배수에 2를 곱한 값이 답입니다.
어떤 부분이 틀렸나요?
그러면 최소공배수 == 가장 큰 숫자인 경우가 없으니까 그냥 최소공배수를 출력해주면 되는 거 아닌가요...? 틀리네요...
정렬해서 최솟값*최댓값 하니까 맞네요... 감사합니다. 그런데 원리가 정확히 이해가 안됩니다.
왜 약수의 최댓값*최솟값이 원래 수가 되나요? 어렴풋이는 알겠는데 엄밀한 증명을 못하겠네요.
음... 그러니까 가장 작은 약수 d가 있다고 했을 때 결국 N/d는 가장 큰 약수가 되는데 (N/d)*d = N이니까 증명이 된다고 보면 될까요?
꾸준한 답변 감사드립니다!
댓글을 작성하려면 로그인해야 합니다.
gkfkagkfka12 5년 전
다 계산한 후에 최소공배수가 가장 큰 값이랑 같을 경우 A=N인 경우이므로 *2를 해주어 출력하고 아니면 그냥 출력합니다.
질문란에 있는 모든 예제 다 돌려보고 맞는데 안되네요ㅠㅠ 숫자범위가 큰 경우 예시에는 답이 없어서 답을 모르겠네요