arrayA가 모두 나누어 떨어지는 최대의 수 = 최대 공약수이고
필자 분의 말씀은 최대 공약수의 약수 목록 중에서 arrayB가
나누어지지 않는 수를 찾아야 하는 것 이 아니냐? 라는 질문을 하셨는데
만약 arrayA의 최대 공약수가 72 라면
최대 공약수의 약수는
{1, 2, 3, 4, 6, 8, 9, 12, 18, 24, 36, 72} 들 이 있습니다.
하지만 arrayB에 72로 나누어 떨어지는 수(72의 배수) 가 있다면
당연히 72의 약수로도 나누어 떨어지게 됩니다.
따라서 최대 공약수만으로 계산하셔도 무방합니다.
만약 약수 크기에 상한이 있다면 (예 : 72의 약수 중 30이하)
의 경우엔 18(2, 3, 3)과 24(2, 2, 2, 3) 중에 나누어 떨어지지 않는 것 으로
골라야하는 문제가 됐을 겁니다.
저도 질문자와 같은 질문이 있는데요. 답변하신 내용중에 arrayB가 72로 나누어 떨어지는 수가 없고 36으로 나누어 떨어지는 수가 있다고 하면 답은 36이 되어야할 것 같습니다. 그런데 그런 테스트케이스가 없네요. 그리고 입출력 예 3번의 arrayB인 경우에도 최대공약수는 6이지만 3으로 예를 들었습니다.
나누어 떨어지지 않는 수를 찾는 겁니다. 그러므로 님이 말한 예시에선 72가 답이고 36은 답이 될 수 없는거죠. 그 다음 입출력 3번은 최대공약수인 6과 공약수인 3 둘 다 가능하지만 더 큰 수를 찾아야하기에 6이 되는겁니다. 즉 최대공약수만 비교해보면 되는거죠
@윤영민 arrayB에서 36으로 나누어떨어지는 수가 있고, 72로 나누어떨어지는 수가 없다면 답은 72가 되어야 합니다. 반대로 생각하신 것 같네요. (모든 arrayB의 숫자를 나눌수 없는 숫자가 와야하니까요) 반대로, 72로 나누어떨어지는 숫자이면서 36으로 나누어떨어지지 않는 숫자는 존재할 수가 없습니다. 72가 36의 배수이니까요. 이러한 이유로 최대공약수만의 비교만으로 가능한 것 같습니다. 저도 이 부분이 궁금해서 왔는데 궁금증이 풀렸네요