7-21 求特殊方程的正整数解
目录
题目描述
本题要求对任意给定的正整数N,求方程X2+Y2=N的全部正整数解。
输入格式:
输入在一行中给出正整数N(≤10000)。
输出格式:
输出方程X2+Y2=N的全部正整数解,其中X≤Y。每组解占1行,两数字间以1空格分隔,按X的递增顺序输出。如果没有解,则输出No Solution
。
输入样例1:
884
输出样例1:
10 28
20 22
输入样例2:
11
输出样例2:
No Solution
参考代码
cpp
#include <iostream>
using namespace std;
int main() {
int N, X, Y,flag=0;
cin >> N;
for (X = 0; X < 71; X++) {
for (Y = X+1;Y<100; Y++) {
if (N == X * X + Y * Y) {
flag = 1;
cout << X << " " << Y << endl;
}
}
}
if (flag == 0) cout << "No Solution";
return 0;
}
总结
注意X、Y的范围,X<71 ( 70*70=4900,71*71=5041,且X<Y ) ,还要判断是否有符合的X、Y。
其他题目,请看--->PTA---基础编程题目集
创作不易,如果我的文章对你有帮助,请点赞、收藏 和关注,您的支持是我前进的最大动力。