求助65pts,用了一种很奇怪的构造方法,WA on #2 #6
查看原帖
求助65pts,用了一种很奇怪的构造方法,WA on #2 #6
305121
8atemak1r楼主2022/1/16 17:49

感觉和最后一篇题解思路差不多

#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;
}
2022/1/16 17:49
加载中...