Q:编写一个程序,找出正整数N=X^2+Y^2所有的正整数X、Y。
注意:100=6^2+8^2与100=8^2+6^2是重复的,只显示一个。
#include<iostream>
#include<cmath>
using namespace std;
int f(int n) {
for(int x=1;x<sqrt(n);x++)
for(int y=x;y<sqrt(n);y++) {//y从x开始向后搜索
if(x*x+y*y==n) {
cout<<x<<"*"<<x<<"+"<<y<<"*"<<y<<"="<<n<<endl;
}
}
return 0;
}
int main() {
int n;
cout<<"input a integer:"<<endl;
cin>>n;
f(n);
return 0;
}
与6.1一个套路。