感觉和最后一篇题解思路差不多
#include<iostream>
#define int long long
using namespace std;
int a, b;
int abss(int x) {return x > 0 ? x : -x;}
bool isp(int x) {
if(x <= 1) return 0;
for(int i = 2; i * i <= x; ++ i) if(x % i == 0) return 0;
return 1;
}
signed main() {
ios :: sync_with_stdio(0); cin.tie(0); cout.tie(0);
cin >> a >> b;
if(isp(abss(a - b))) return cout << 2 << '\n' << a << ' ' << b, 0;
if(a == 2 || b == 2) {
if(isp(a + b)) return cout << 3 << '\n' << a << ' ' << a + b << ' ' << b, 0;
return cout << -1, 0;
}
if(isp(a + 2)) {
if(isp(b + 2)) return cout << 5 << '\n' << a << ' ' << a + 2 << " 2 " << b + 2 << ' ' << b, 0;
else if(isp(b - 2) && isp(b - 4)) return cout << 5 << '\n' << a << ' ' << a + 2 << " 2 " << b - 2 << ' ' << b, 0;
}
else if(isp(a - 2)) {
if(isp(b + 2) && isp(a - 4)) return cout << 5 << '\n' << a << ' ' << a - 2 << " 2 " << b + 2 << ' ' << b, 0;
else if(isp(b - 2) && isp(b - 4)) return cout << 5 << '\n' << a << ' ' << a - 2 << " 2 " << b - 2 << ' ' << b, 0;
}
cout << -1;
return 0;
}