| 网站首页 | 业界新闻 | 小组 | 威客 | 人才 | 下载频道 | 博客 | 代码贴 | 在线编程 | 编程论坛
共有 370 人关注过本帖
标题:计算标准佩尔方程x^2-Dy^2=1的最小解的程序
只看楼主 加入收藏
ysr2857
Rank: 20Rank: 20Rank: 20Rank: 20Rank: 20
等 级:版主
威 望:34
帖 子:847
专家分:77
注 册:2020-2-10
结帖率:100%
收藏
 问题点数:0 回复次数:2 
计算标准佩尔方程x^2-Dy^2=1的最小解的程序
while True:
    try:
        a = 1
        b = 0
        c = input('请输入一个数字:')
        c = eval(c)
        d=c**0.5
        a0=int(d)
        a1=a0
        r=d
        p0=a0
        q0=1
        r=1/(r-a1)
        a1=int(r)
        p1=a0*a1+1
        q1=a1
        s=2
        while int(1/(r-a1))!=2*a0 :
            s+=1
            r=1/(r-a1)
            a1=int(r)
            p2=a1*p1+p0
            q2=a1*q1+q0
            p0=p1
            q0=q1
            p1=p2
            q1=q2
        if s % 2 == 0 :
            x0=p1
            y0=q1
        else :
            x0=2*p1*p1+1
            y0=2*p1*q1
        print(x0,y0)
    except:exit()
搜索更多相关主题的帖子: 最小 标准 int 方程 计算 
2025-04-26 19:44
ysr2857
Rank: 20Rank: 20Rank: 20Rank: 20Rank: 20
等 级:版主
威 望:34
帖 子:847
专家分:77
注 册:2020-2-10
收藏
得分:0 
while True:
    try:
        a = 1
        b = 0
        c = input('请输入一个数字:')
        c = eval(c)
        c=c*10**40
        d=c**0.5
        d=int(d)
        d=str(d)
        a0=int(d[:len(d)-20])
        a1=a0
        r=d
        p0=a0
        q0=1
        r=10**40/int(r[len(r)-20:])
        r=int(r)
        r=str(r)
        a1=int(r[:len(r)-20])
        p1=a0*a1+1
        q1=a1
        s=1
        while int(r[:len(r)-20])!=2*a0 :
            s+=1
            r=10**40/int(r[len(r)-20:])
            r=int(r)
            r=str(r)
            a1=int(r[:len(r)-20])
            p2=a1*p1+p0
            q2=a1*q1+q0
            p0=p1
            q0=q1
            p1=p2
            q1=q2
        if s % 2 == 0 :
            x0=p0
            y0=q0
        else :
            x0=2*p0*p0+1
            y0=2*p0*q0
        print(x0,y0)
        print("循环节长度",s)
    except:exit()

[此贴子已经被作者于2025-5-6 23:14编辑过]

2025-04-30 21:16
ysr2857
Rank: 20Rank: 20Rank: 20Rank: 20Rank: 20
等 级:版主
威 望:34
帖 子:847
专家分:77
注 册:2020-2-10
收藏
得分:0 
while True:
    try:
        a = 1
        b = 0
        c = input('请输入一个数字:')
        c = eval(c)
        d=c**0.5
        a0=int(d)
        a1=a0
        r=d
        p0=a0
        q0=1
        r=1/(r-a1)
        a1=int(r)
        p1=a0*a1+1
        q1=a1
        s=2
        while int(1/(r-a1))!=2*a0 :
            s+=1
            r=1/(r-a1)
            a1=int(r)
            p2=a1*p1+p0
            q2=a1*q1+q0
            p0=p1
            q0=q1
            p1=p2
            q1=q2
        if s % 2 == 0 :
            x0=p1
            y0=q1
        else :
            x0=2*p1*p1+1
            y0=2*p1*q1
        print(x0,y0)
        print("循环长度",s)
    except:exit()
2025-05-08 13:55
快速回复:计算标准佩尔方程x^2-Dy^2=1的最小解的程序
数据加载中...
 
   



关于我们 | 广告合作 | 编程中国 | 清除Cookies | TOP | 手机版

编程中国 版权所有,并保留所有权利。
Powered by Discuz, Processed in 0.017325 second(s), 10 queries.
Copyright©2004-2025, BC-CN.NET, All Rights Reserved