用c语言代码x^2-n*y^2=1,佩尔方程,寻找非平凡解(即y!=0),输入不同的n
时间: 2024-05-05 15:16:50 浏览: 147
论文研究 - 牛顿,哈雷,佩尔和√的最优迭代高阶有理逼近
```c
#include <stdio.h>
#include <math.h>
int main()
{
int n, x, y, a, b, c, d, e, f, g, h;
double sqrt_n;
printf("请输入n的值:");
scanf("%d", &n);
sqrt_n = sqrt(n);
a = (int)sqrt_n;
x = a; y = 1;
b = n - a * a;
while (b != 1) {
c = (int)(sqrt(n) + x) / b;
d = c * b - x;
e = b;
x = b;
y = d;
b = e - d * d / b;
}
f = x * y + 1;
g = x;
h = y;
while (g * g - n * h * h != 1) {
g += n * h;
h = (f - n * g) / h;
f = (int)((sqrt_n + g) / h) * h - g;
}
printf("一组非平凡解为:x=%d, y=%d\n", g, h);
return 0;
}
```
注意:该代码只能找到一组非平凡解,如果要找到所有非平凡解,需要进行更多的计算。
阅读全文