Problem G: 深入浅出学算法008-求佩尔方程的解

Posted chenlong991223

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了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
",i);
                    flag=1;
                    break;
                }
            }
            if(flag==0)
            {
                printf("No
");
            }
        }
    }
    return 0;
}

 

以上是关于Problem G: 深入浅出学算法008-求佩尔方程的解的主要内容,如果未能解决你的问题,请参考以下文章

Problem A: 深入浅出学算法002-n个1

Problem G: 零起点学算法86——Fibonacc

Problem Z: 零起点学算法22——求正弦和余弦

Problem O: 零起点学算法10——求圆柱体的表面积

深入浅出学算法006-求不定方程的所有解

L2-008 最长对称子串(马拉车 or 技巧暴力)