5-21 求特殊方程的正整数解

来源:互联网 发布:大数据怎么存储 编辑:程序博客网 时间:2024/06/08 17:28

本题要求对任意给定的正整数N,求方程X^2 + Y^2 =N的全部正整数解。

输入格式:

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

输出格式:

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

输入样例1:

884
输出样例1:

10 28
20 22
输入样例2:

11

#include<stdio.h>int main(){    int x,y,n,a;    int flag=0;    scanf("%d",&n);    a=n/2;//  printf("%d",a);    for(x=1;x<=a;x++){        for(y=x;y<=a;y++){            if(x*x+y*y==n){                flag=1;                printf("%d %d\n",x,y);}                  }    }    if(!flag)        printf("No Solution");    return 0;}

x<=y 按X的递增顺序输出 for外部循环从先开始 然后y进行内循环;
a为输入n的一半,不是平方根;

0 0
原创粉丝点击