1. 程式人生 > >Problem G: 深入淺出學演算法008-求佩爾方程的解

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; }