求助,为什么会爆0...
查看原帖
求助,为什么会爆0...
759274
Stevehim楼主2022/11/7 21:47
#include <bits/stdc++.h>
using namespace std;
typedef long long ll;

ll isprime(ll x){
    if(x <= 1){
        return 0;
    }
    if(x == 2 && x == 3){
        return 1;
    }
    for(ll i = 2; i * i <= x; i++){
        if(x % i == 0){
            return 0;
        }
    }
    return 1;
}


int k;
ll n,e,d;
ll i,j;
int main(){
    //freopen("decode.in","r",stdin);
    //freopen("decode.out","w",stdout);
    cin >> k;
    for(int ef = 0; ef < k; ef++){
        cin >> n >> e >> d;
        if(isprime(n) == 1){
            cout << "NO" << endl;
            continue;
        }
        ll m = n - (e * d - 2);
        bool ifo = 0;
        for(i = 1; i * i <= n; i++){
            if(n % i != 0){
                continue;
            }else{
                j = n / i;
                if(j + i == m){
                    cout << i << ' ' << j << endl;
                    ifo = 1;
                    break;
                }
            }
        }
        if(ifo != 1){
            cout << "NO" << endl;
        }
    }
    fclose(stdin);
    fclose(stdout);
    return 0;
}
2022/11/7 21:47
加载中...