本题要求对任意给定的正整数_N_,求方程_X_2+_Y_2=_N_的全部正整数解。
输入格式:
输入在一行中给出正整数_N_(≤10000)。
输出格式:
输出方程_X_2+_Y_2=N_的全部正整数解,其中_X_≤_Y。每组解占1行,两数字间以1空格分隔,按_X_的递增顺序输出。如果没有解,则输出No Solution。
输入样例1:
884
输出样例1:
10 28 20 22
输入样例2:
11
输出样例2:
No Solution
#include <algorithm>
#include <iostream>
#include<cmath>
using namespace std;
int main() {
int N,a=0,b;
cin >> N;
//这里是正整数没有0
for (int i = 1; i <100 ; i++)
{
for (int j = 1; j <100; j++)
{
if (i * i + j * j == N&&i<=j)
{
cout << i << ' ' << j<<endl;
a = 1;
}
}
}
if (a == 0)cout << "No Solution";
return 0;
}
本文介绍了一个C++程序,该程序能够找出所有满足X²+Y²=N的正整数解,其中X≤Y。输入为一个正整数N(≤10000),程序将输出所有可能的解对(X,Y),若不存在解,则输出NoSolution。
631

被折叠的 条评论
为什么被折叠?



