给出了两个非负整数 P 和 Q。您的任务是使得 P 和 Q 相等。在每一步中,您可以执行以下两项操作之一:
1、将任何质数加到 P 上。
2、从 Q 减去任何质数。
如果不可能使 P 和 Q 相等,则输出-1。否则,输出一个非负整数:可以执行的最大步数。
输入格式
一行,两个整数 P 和 Q。 0 <= P,Q <= 10^18
输出格式
一个整数。
输入/输出例子1
输入:
5 9
输出:
2
输入/输出例子2
输入:
5 10
输出:
2
输入/输出例子3
输入:
5 6
输出:
-1
样例解释
友情提示:数字0和1不是质数
#include<bits/stdc++.h>
using namespace std;
long long p,q;
int main()
{
cin>>p>>q;
if(p>q){cout<<-1;return 0;}
if(p-q==0){cout<<0;return 0;}
if(p-q==1){cout<<-1;return 0;}
cout<<(q-p)/2;
return 0;
}