¿La página no carga? Prueba haciendo clic aquí.
Placeholder

#8067

2의 거듭제곱의 합 2 1s 1024MB

Problemas

주어진 양의 정수 N에 대해 2^x + 2^y = N인 음이 아닌 정수 xy를 출력하는 프로그램을 작성하시오. 단, x\le y를 만족해야 한다.

그런 (x,y)가 존재하지 않는다면, (x,y)가 존재하는 N과의 차이가 가장 작은 수로 N을 대체한 뒤 위와 같은 규칙으로 (x,y)를 고른다. 대체할 수 있는 수가 여러 가지라면 그중 가장 작은 것으로 대체한다. 이때 (x,y)가 유일하게 결정됨을 증명할 수 있다.


Entrada

첫 줄에 정수 N이 주어진다. ( 1≤N≤10^{18})

주어지는 N에 대해 가능한 x\le y(x,y) 순서쌍이 존재함이 보장되지 않는다.


Salida

첫 줄에 N에 대해 2^x + 2^y = N인 음이 아닌 정수 xy를 출력한다.


Ejemplo #1

1
0 0

Ejemplo #2

7
1 2

Fuente

송도고 코드마스터 2023 D2번
Debes iniciar sesión para escribir código.