gcd 놀이
시간 제한5초메모리 제한1024 MB
초기 수열 뒤에 1 이상 100000 이하의 정수를 K개 붙여, 완성된 수열의 모든 쌍 중 최대공약수의 최댓값과 최솟값의 차를 최대로 만든다.
문제
준혁이는 길이가 인 수열 에서 gcd 놀이를 하고 있다. 준혁이는 이 수열의 뒤에 정수 개를 추가하려고 한다.
개의 수를 추가한 수열 의 점수는 다음과 같이 계산한다.
준혁이가 이상 이하의 임의의 정수 개를 수열의 뒤에 추가했을 때, 가능한 수열의 점수의 최댓값을 구하여라.
입력
첫 줄에 테스트케이스의 수 가 주어진다.
각 테스트케이스는 두 줄로 이루어져있다.
테스트케이스의 첫째 줄에 수열의 초기 길이 과 추가할 수의 개수 가 공백으로 구분되어 주어진다.
테스트케이스의 둘째 줄에 수열을 이루는 정수 , , , 이 공백으로 구분되어 주어진다.
출력
각 테스트케이스마다 한 줄에 하나씩 가능한 수열의 점수의 최댓값을 출력한다.
힌트
는 와 의 최대공약수로 정의된다.