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: #include <bits/stdc++.h>
using namespace std;
 
int main() {
	int a, b;
	cin >> a >> b;
	if (a == b) cout << 0;
	else if (abs(a - b) == 1) cout << 1;
	else if (a % b == 0 || b % a == 0) cout << 1; 
	else cout << 2;
}
, In this Programming Language: C++, Now tell me if this Code is compilable or not?