本题要求对任意给定的正整数N,求方程X_2+_Y_2=_N的全部正整数解。

输入格式:

输入在一行中给出正整数N(≤10000)。

输出格式:

输出方程X_2+_Y_2=_N的全部正整数解,其中XY。每组解占1行,两数字间以1空格分隔,按X的递增顺序输出。如果没有解,则输出No Solution

输入样例1:

  1. 884

输出样例1:

  1. 10 28
  2. 20 22

输入样例2:

  1. 11

输出样例2:

  1. No Solution

思路:略

  1. #include<stdio.h>
  2. int main(){
  3. int n;
  4. int x, y;
  5. int flag = 0;
  6. scanf("%d", &n);
  7. for(x=1; x<=n/2; x++){
  8. for(y=x; y<=n/2; y++){
  9. if(x*x+y*y==n){
  10. printf("%d %d\n", x, y);
  11. flag++;
  12. }
  13. }
  14. }
  15. if(flag==0)
  16. printf("No Solution");
  17. return 0;
  18. }