7-6 求特殊方程的正整數解 (10分)
阿新 • • 發佈:2021-01-06
7-6 求特殊方程的正整數解 (10分)
本題要求對任意給定的正整數N,求方程
的全部正整數解。
輸入格式:
輸入在一行中給出正整數N(≤10000)。
輸出格式:
輸出方程
的全部正整數解,其中X≤Y。每組解佔1行,兩數字間以1空格分隔,按X的遞增順序輸出。如果沒有解,則輸出No Solution。
輸入樣例1:
884
輸出樣例1:
10 28
20 22
輸入樣例2:
11
輸出樣例2:
No Solution
#include <stdio.h>
#include<string.h>
#include<math.h>
int main()
{
int n , flag=0;
double x=1 , y , m;
scanf("%d" , &n);
m=sqrt(n);
while(x<m){//縮小範圍
y=n-x*x;
y=sqrt(y);
int y1;
y1=(int)y;
if(y<x)break;//y小於x時迴圈結束
if(y-y1==0){
printf("%.0lf %.0lf\n" , x , y);
flag=1;//表示有解
}
x++ ;
}
if(flag==0){
printf("No Solution\n");
}
return 0;
}