Problem G: 深入浅出学算法008-求佩尔方程的解
Description
求关于x y的二次不定方程的解 x2-ny2=1
Input
多组输入数据,先输入组数T 然后输入正整数n(n<=100)
Output
对于每组数据输出一行,求y<=10000的最小正整数解 ,输出y的值,如果在此范围内没有解则输出No
Sample Input
1 73
Sample Output
No
#include <stdio.h> #include <math.h> int main() { int t,n; int i,j; int a,b; while(scanf("%d",&t)!=EOF) { while(t--) { int flag=0; scanf("%d",&n); for(i=1;i<=10000;i++) { if((int)sqrt(i*i*n+1)*(int)sqrt(i*i*n+1)==n*i*i+1) { printf("%d\n",i); flag=1; break; } } if(flag==0) { printf("No\n"); } } } return 0; }