For this Question: You have two integers, X and Y. Initially, they are equal to A and B, respectively. In one move, you can do exactly one of the following operations:

1. Set X = X+1
2. Set Y = Y+1.
3. Let d be any divisor of X, then set X = d
4. Let d be any divisor of Y, then set Y = d.

Find the minimum number of moves so that X = Y.The input consists of two space separated integers A and B.

Constraints:
1 ≤ A, B ≤ 10<sup>9</sup>Print a single integer, the minimum number of moves so that X = Y.Sample 1:
1 8

Output 1:
1

Explanation 1:
We do only one operation, we let Y = 1 by the fourth operation. Then X = Y = 1.

Sample 2:
5 5

Output 2:
0, I have written this Solution Code: import java.io.*;
import java.util.*;

class Main
{
    public static void main(String args[])throws Exception
    {
        BufferedReader bu=new BufferedReader(new InputStreamReader(System.in));
        StringBuilder sb=new StringBuilder();
        String s[]=bu.readLine().split(" ");
        int a=Integer.parseInt(s[0]),b=Integer.parseInt(s[1]);
        int ans=2;
        if(a==b) ans=0;
        else if(a%b==0 || b%a==0 || a+1==b || b+1==a) ans=1;
        System.out.println(ans);
    }
}, In this Programming Language: Java, Now tell me if this Code is compilable or not?