For this Question: Given an integer X find an integer Y such that Y has exactly two set bits in its binary representaion and abs(X- Y) is minimum.Input contains a single integer X.

Constraints 
1 <= X <= 10^15Print a single integer, the minimum value of abs(X- Y).Sample input 1
5

Sample output 1
0

Explanation: Y=5.

Sample input 2
1

Sample output 2
2

Explanation: Y=3, I have written this Solution Code: import java.io.*;
import java.util.*;



class Main {
	public static void main (String[] args) throws IOException{

		InputStreamReader ir = new InputStreamReader(System.in);
		BufferedReader br = new BufferedReader(ir);
		long N = Long.parseLong(br.readLine());
		long minDiff = Long.MAX_VALUE;
		for(long i = 0; i < 63; i++){
			for(long j = (i+1); j < 63; j++){
				long targetNumber = (1l<<i)|(1l<<j);
				long diff = Math.abs(N - targetNumber);
				if(diff < minDiff){
					minDiff = diff;
				}

			}
		}

		System.out.println(minDiff);


	}
}, In this Programming Language: Java, Now tell me if this Code is compilable or not?