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一个套路。