p.s.个人收录用
题目描述
求关于x y的二次不定方程的解 x2-ny2=1
输入
多组输入数据,先输入组数T 然后输入正整数n(n<=100)
输出
对于每组数据输出一行,求y<=10000的最小正整数解 ,输出y的值,如果在此范围内没有解则输出No
样例输入 Copy
1 73
样例输出 Copy
No
提示
只需要输出y的值
代码
#define _CRT_SECURE_NO_WARNINGS
#include <stdio.h>
#include <math.h>
//求佩尔方程的解
int main()
{
int t;
scanf("%d", &t);
while (t--)
{
int n;
scanf("%d", &n);
int flag = 1;
for (int 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 = 0;
break;
}
}
if (flag)
printf("No\n");
}
}