数学中国

 找回密码
 注册
搜索
热搜: 活动 交友 discuz
楼主: ysr

计算标准佩尔方程x^2-Dy^2=1的最小解的vb程序

[复制链接]
 楼主| 发表于 2025-5-16 19:17 | 显示全部楼层
while True:
    try:
        a = 1
        b = 0
        c = input('请输入一个数字:')
        c = eval(c)
        i=42905136518303
        while i<=c:
            y=abs(i*i+1)/19633
            y=y**0.5
            s=i*i-19633*y*y
            if int(y)==y:
                if y<c and i*i-19633*y*y>=-1 :
                        print("x=",i,"s=",s)
            i+=1
    except:exit()

   
请输入一个数字:42905136518309
x= 42905136518304 s= 0.0
请输入一个数字:
回复 支持 反对

使用道具 举报

 楼主| 发表于 2025-5-17 21:03 | 显示全部楼层
本帖最后由 ysr 于 2025-5-17 13:15 编辑

while True:
    try:
        a = 1
        b = 0
        c = input('请输入一个数字:')
        c = eval(c)
        i=100000000
        while i<=c:
            y=abs(i*i+1)/634
            y=y**0.5
            s=634*int(y)*int(y)
            s1=i*i
            if int(y)==y:
                if y<c and s1-s==-1 :
                        print("x=",i,"y=",int(y))
            i+=1
    except:exit()
回复 支持 反对

使用道具 举报

 楼主| 发表于 2025-5-26 16:15 | 显示全部楼层
while True:
    try:
        a = 1
        b = 0
        c = input('请输入一个数字:')
        c = eval(c)
        c=c*10**200
        d=c**0.5
        d=int(d)
        d=str(d)
        a0=int(d[:len(d)-100])
        a1=a0
        r=d
        p0=a0
        q0=1
        r=10**200/int(r[len(r)-100:])
        r=int(r)
        a1=int(r/10**100)
        r=str(r)
        p1=a0*a1+1
        q1=a1
        s=1
        while int(r[:len(r)-100])!=2*a0 :
            s+=1
            r=10**200/int(r[len(r)-100:])
            r=int(r)
            a1=int(r/10**100)
            r=str(r)
            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-26 16:54 | 显示全部楼层
Private Sub Command1_Click()
'验证佩尔方程解的程序vb程序
Dim A, B
A = Trim(Text1): B = Trim(Text2)
B = MbC(Trim(B), Trim(B))
'c = MPC(MbC(Trim(B), 1018), MbC(Trim(A), Trim(A)))
c = MPC(MbC(Trim(A), Trim(A)), MbC(Trim(B), 922))
Text3 = "左边=" & c

End Sub

Private Sub Command2_Click()
Text1 = ""
Text2 = ""
Text3 = ""

End Sub
回复 支持 反对

使用道具 举报

 楼主| 发表于 2025-5-29 01:50 | 显示全部楼层
while True:
    try:
        a = 1
        b = 0
        c = input('请输入一个数字:')
        c = eval(c)
        i=1
        while i<=c:
            y=abs(i*i+1)/1114
            y=y**0.5
            s=1114*int(y)*int(y)
            s1=i*i
            if int(y)==y:
                if y<c and s1-s==-1 :
                        print("x=",i,"y=",int(y))
            i+=1
    except:exit()
回复 支持 反对

使用道具 举报

您需要登录后才可以回帖 登录 | 注册

本版积分规则

Archiver|手机版|小黑屋|数学中国 ( 京ICP备05040119号 )

GMT+8, 2025-6-1 18:50 , Processed in 0.076366 second(s), 13 queries .

Powered by Discuz! X3.4

Copyright © 2001-2020, Tencent Cloud.

快速回复 返回顶部 返回列表