이상한 함수
시간 제한0.1초메모리 제한1024 MB
양의 정수 a가 주어졌을 때, 1 이상 a 미만의 b에 대해 a XOR b와 a AND b의 최대공약수를 가장 크게 만드는 값을 구합니다.
문제
양의 정수 가 주어진다. 을 만족하는 정수 를 골라 와 의 최대공약수를 최대로 만들고, 그 값을 출력하라. 즉, 다음 식으로 정의된 의 값을 구하라. 여기서 는 비트별 XOR, 는 비트별 AND를 뜻한다. 한 자리 이진수에 대한 연산은 아래 표와 같다.
자릿수가 여러 개인 수는 두 피연산자의 이진 표현에서 같은 자리끼리 연산하고, 얻은 비트열을 이진수 답으로 삼는다. 예를 들어 , 이고, , 이다.
입력
첫 줄에 질의 수 ()이 주어진다. 다음 개의 줄에는 각각 정수 ()가 하나씩 주어진다.
출력
개의 줄을 출력한다. 번째 줄에는 의 값을 출력한다.