. Повернутися

struct TwoIntNums
{
    int A;
    int B;
};

bool IsPrime(int n)
{
    if (n<=1) return false;
    if (n==2) return true;
    if (n%2==0) return false;
    for (int i=3; i*i<=n; i+=2)
    {
        if(n%i==0) return false;
    }
    return true;
}

TwoIntNums CalcTwoPrimes(int N)
{
    TwoIntNums result;
    result.A = -1;
    result.B = -1;
    
    if (N<=0 || N%2!=0) return result;
    
    for (int i=2; i<=N/2; i++)
    {
        if(IsPrime(i) && IsPrime(N-i))
        {
            result.A = i;
            result.B = N-i;
            break;
        }
    }
    return result;
}