数学中国

 找回密码
 注册
搜索
热搜: 活动 交友 discuz
12
返回列表 发新帖
楼主: ysr

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

[复制链接]
 楼主| 发表于 2025-4-18 23:30 | 显示全部楼层
输入474,输出:最小解为: x0=193549 y0=8890 循环节长度:14
回复 支持 反对

使用道具 举报

 楼主| 发表于 2025-4-26 15:09 | 显示全部楼层
本帖最后由 ysr 于 2025-4-26 11:51 编辑

方程x^2-5741y^2=1的解:
      
请输入一个数字:5741
1240536637677126167818624954249974964645633201473415285637475961202237886999919327932640035623329816089856754176182501261818813091138448924891468282631096414885050145392744032180105754847871214652011035280024559046583442840654125462341676282734056233260038575203513450459636884738190215208778690723600909622256635987266081704343058689806135812363940175121481801470216548332785246035912906670599184199074200353937704273901463711106546374471532449314730983422250219540853829021181560515410856437378710674226029659037301624828050660863864038525870510016232302482317648102125593416620355419910621498072053829844564720862955812793643615338259763535783598306776282946709044279560602128701580275030061743992581694759340789928846213902346204023841143239735585853484000608572834253313187446355249296604836865386381130014916939701252048360559318368040571031315649105663283004234145258859300607937621515239461980600845057313810481146257540926677221967884554064773120651807582791481041445788296391780338749224454945532077684325214539990106258418363883883053325416619327005263974712479450414542634965615973187769010769703332234733170407609217709581628533451872814121576251453599701711985151350718904736598450408554288824904383851418245299643818852297444989850358422290063724561525577079963726405956549121704141482927212344852338989709289225504339897093168271241498485945259131177447980775284300293385905886524342577570565261560142902257301623548020974610058806923310603784798717781118258431787041131854893756019799698702551217581406985720980932414085225551561214611764591098352734034787959224921487593240746162734554130756838526205857061802122893686426842366770563535550231488074794060065433638222616276563896032059966330266247354660482857908659727558883181018765575777855779602528581556661969552545789272287926923782381185775093474464875399775174563024345248891090280069858731678184210107287591426361217512152817780371814253985835839358462368693621413760109640360659514173165553982242743356523436059581614535603033647092849674040288930029814544158106481657197734808750095319645865060683740753008477308918896868113442788645516827181650356715109353757569983577548568883974544880014761065493823193730751470424859055019755807230781084409740535332021983791369823225256989251272001475309179660525419807502227723328970107786471733566943457805790379800111822384597813569796484973993341487524968820042896744409290054686997967421051111494200932055724137236644084263322079386317695636457313180720629132702488988555599029184305552254839975184944573279748548990786791925694517882166187033276262624367770743628486290409890556061572393152345383166149038697811897183607063918704333807820020258094666808200234372285124317169507104438665106536594714944624949655613234107612563 16372531011288441632026934202244801591303044171877037938801412557614108203902913058912688563436435716729347526278475388135115172538556824666297813004395088465198075129809531585953976471629954237516491604172910881543403820140931694982680240587511229099392391534893705112336389957310596259693784503449873826894182299540083625485462161200624773889781893344223703267017364081323936981078929590393580710260895174331787572509487291525171066654290225153227810838037256404171916243379574676856636682794393356520827954489866911193156842853254605921875258760965084295964989834076546792105875007970910818698471628789260851092760270045411809840130236138183766556016062690427880252700486580846612121678005881437241877394467871024915756543209273248306963133301526667323522565616989990730790783193408071863753750314937565160634286498736307908408153860645471599175938433633672382863849911600907497316457818476242621960364773292736257667858957802947079332928171436520419719021902786406763497498544619805794377228713155170705091097029963512902008680634213705315252843071282821517875099378017348099635407019678880688141340387971261183483235802675518926990261142379309529006911225748233943580277242179854550234109007944734336350550203738551493510020249934410276676944794908556191829489055082376431976232368268018532087618161455876178626855513309606941195552503552571322862614135397145577756452861703526335192594879667120102692161494981728471377776257264182978578122352706333331554694125358555995506494394471677564811298328786802296344794414362399102432526518652014138777495525233977212982906311631003344981372202257568134350223237032399715708781531076465433647642315753325968742858070105574824220775279419550668840327757485327309811570028493831924446829371166098394627991456187662932141858379069504650166475709638064108922005952924485669419992166401596662123870568662552810433514328823132321358911731340720239712845901141431265534111514461004710243747690051474595766591167194892339214028919758279212112443551346468761919309519058098730793027851437781702984188208329768538990177012541391136263740037258279795052091296704834976484283509372807032654973507912453083756962957332174918856561736940097112749066594309527430108540054259862591426211281554505086559728188087512810679853547349230678784866272826541783166249510487474831230556464128035887598465549431710730440402177155231614377424273106667607530415494777307513535044521111337509750417715258588356346546625465044513880309169604406817276780888322345476339819005416340665137758593207979167869850979047964249772852591096866778975377044807685241821561487729731283625029702153022489471046819698106181498348487463007423447295637999983629224245655669780897879898635251216507248642076974194925947289835013798419866118360
回复 支持 反对

使用道具 举报

 楼主| 发表于 2025-4-26 19:46 | 显示全部楼层
计算标准佩尔方程x^2-Dy^2=1的最小解的python程序
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()
回复 支持 反对

使用道具 举报

 楼主| 发表于 2025-4-26 19:54 | 显示全部楼层
输入5741,输出:
循环节长度 2645 循环节  75/1/3/2/1/37/5/5/37/1/2/4/14/1/11/1/4/3/11/26/1/1/1/7/11/1/2/19/1/2/……………………
回复 支持 反对

使用道具 举报

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

本版积分规则

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

GMT+8, 2025-4-27 14:57 , Processed in 0.078757 second(s), 13 queries .

Powered by Discuz! X3.4

Copyright © 2001-2020, Tencent Cloud.

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