Неправильный ответ при отправке, но тестовые примеры пройдены? - PullRequest
0 голосов
/ 16 октября 2019

Я пытаюсь решить этот вопрос от SPOJ: <<a href="https://www.spoj.com/problems/APM/" rel="nofollow noreferrer">https://www.spoj.com/problems/APM/>

Мистер. Абул большой поклонник простых чисел. Как поклонник простых чисел, он хочет знать, можно ли выразить простое число P как разность двух квадратов или нет?

Другими словами, вам нужно вычислить два натуральных числа X и Yгде P = X ^ 2 - Y ^ 2

Например, простое число P = 5 может быть выражено как 3 ^ 2 - 2 ^ 2 = 9 - 4 = 5, здесь X = 3 и Y = 2.

int main()
{
    int z;
    cin>>z; //test cases
    while(z--)
    {
        int n, i, flag = 0;
        cin>>n;
        for(i=2; i<=sqrt(n); ++i) {
        if(n%i==0) {
         flag=1;
         break;
      }
   }
   if (flag==0)    //prime number taken
   {
        if(n==2)
        {
            cout<<"-1"<<endl;

        }
        else
        {
            if(!(n%2==0))
            cout<<(n+1)*0.5<<" "<<(n-1)*0.5<<endl;
            else
            {
            cout<<"-1"<<endl;
            }
        }
    }
    else
    cout<<"-1";
    }   
    // your code goes here
    return 0;
}

Но это все еще не принято в качестве ответа, что я делаю не так? Кроме того, любые комментарии о лучшем подходе к решению этой проблемы очень приветствуются.

...