本题要求对任意给定的正整数N,求方程XX+YY=N的全部正整数解。
输入格式:
输入在一行中给出正整数N(≤10000)。
输出格式:
输出方程XX+YY=N的全部正整数解,其中X≤Y
int main()
{
int x =1;
int y=1;
int n;
scanf("%d",&n);
int z=xx+yy;
while( y*y <= n){
while( z <= n){
if(z == n){
printf("%d %d",x,y);
}
y++;
}
x++;
y++;
}
return 0;
}
#include <iostream>
#include <cmath>
// 由下列关系
// X*X + Y*Y = N
// 1 <= X <= Y
// 可以得出
// 1 <= X <= sqrt(N/2)
// X <= Y <= sqrt(N-1)
int main()
{
int N;
std::cin >> N;
int m = (int)sqrt(N / 2);
int n = (int)sqrt(N - 1);
for (int X = 1; X <= m; X++)
{
for (int Y = X; Y <= n; Y++)
{
if (X * X + Y * Y == N)
std::cout << X << ' ' << Y << '\n';
}
}
return 0;
}
int main(void) {
int N, x, y, is = 0;
scanf("%d", &N);
for (x=1; x<sqrt(N)+1; x++) {
for (y=x; y<sqrt(N)+1; y++) {
if (N == x*x+y*y) {
is = 1;
printf("%d %d\n", x, y);
}
}
}
if (0 == is) {
printf("No Solution");
}
return 0;
}