1. 程式人生 > >【c++】求特殊方程的正整數解

【c++】求特殊方程的正整數解

本題要求對任意給定的正整數NN,求方程X2+Y2=N的全部正整數解。
輸入格式:
輸入在一行中給出正整數N(N10000)
輸出格式:
輸出方程X2+Y2=N的全部正整數解,其中XY。每組解佔1行,兩數字間以1空格分隔,按X的遞增順序輸出。如果沒有解,則輸出No Solution。
輸入樣例1:

884

輸出樣例1:

10 28
20 22

輸入樣例2:

11

輸出樣例2:

No Solution

程式程式碼:

#include<iostream>
#include<math.h>
using namespace std;
int main()
{
    int
n; bool flag=0; cin>>n; for(int i =1;i<sqrt(n);i++) { for(int j=1;j<sqrt(n);j++) { if((i*i+j*j)==n&&i<j) { flag = 1; cout<<i<<' '
<<j; cout<<endl; } } } if(!flag) cout<<"No Solution"; return 0; }

這裡寫圖片描述
這裡寫圖片描述