数学中国

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

[原创]大整数的乘法

[复制链接]
 楼主| 发表于 2021-4-8 17:49 | 显示全部楼层
13916000003349999997294/2=6,958,000,001,674,999,998,647,
6,958,000,001,674,999,998,647/60000*148=17,163,066,670,798,333,329.995933333333,
这次算的总数少了,所以,这只能是可能性,可能有这么多。无法确定是否是下限。
仅仅做个参考。(整数部分是20位的数,就是约为1.7*10^19)
回复 支持 反对

使用道具 举报

 楼主| 发表于 2021-4-8 18:16 | 显示全部楼层
60000与90000之间打头的素数有62组偶数13916000003349999997294的哥猜素数和对:(用时889.8047秒)
/60413/13916000003349999936881
/62207/13916000003349999935087
/62507/13916000003349999934787
/62687/13916000003349999934607
/62921/13916000003349999934373
/63863/13916000003349999933431
/64067/13916000003349999933227
/64817/13916000003349999932477
/65003/13916000003349999932291
/66137/13916000003349999931157
/66491/13916000003349999930803
/67217/13916000003349999930077
/67343/13916000003349999929951
/67547/13916000003349999929747
/67961/13916000003349999929333
/68597/13916000003349999928697
/68777/13916000003349999928517
/68813/13916000003349999928481
/68927/13916000003349999928367
/69011/13916000003349999928283
/69557/13916000003349999927737
/69767/13916000003349999927527
/70583/13916000003349999926711
/71471/13916000003349999925823
/72467/13916000003349999924827
/73091/13916000003349999924203
/73643/13916000003349999923651
/74051/13916000003349999923243
/74411/13916000003349999922883
/74471/13916000003349999922823
/74891/13916000003349999922403
/74897/13916000003349999922397
/75611/13916000003349999921683
/77681/13916000003349999919613
/78341/13916000003349999918953
/78467/13916000003349999918827
/78797/13916000003349999918497
/79193/13916000003349999918101
/80651/13916000003349999916643
/81083/13916000003349999916211
/81293/13916000003349999916001
/81707/13916000003349999915587
/83231/13916000003349999914063
/83561/13916000003349999913733
/83813/13916000003349999913481
/83933/13916000003349999913361
/84191/13916000003349999913103
/84977/13916000003349999912317
/85121/13916000003349999912173
/85643/13916000003349999911651
/85781/13916000003349999911513
/85793/13916000003349999911501
/85853/13916000003349999911441
/86171/13916000003349999911123
/87701/13916000003349999909593
/87803/13916000003349999909491
/88037/13916000003349999909257
/88547/13916000003349999908747
/88883/13916000003349999908411
/89087/13916000003349999908207
/89261/13916000003349999908033
/89867/13916000003349999907427
(这段密度没有减少,个数仅仅增加了2个,基本稳定,不再计算总数了)
回复 支持 反对

使用道具 举报

 楼主| 发表于 2021-4-8 19:01 | 显示全部楼层
90000与120000之间打头的素数有71组偶数13916000003349999997294的哥猜素数和对:(用时855.7344秒)
/90053/13916000003349999907241
/90197/13916000003349999907097
/90473/13916000003349999906821
/90533/13916000003349999906761
/91253/13916000003349999906041
/91331/13916000003349999905963
/91571/13916000003349999905723
/91781/13916000003349999905513
/91961/13916000003349999905333
/92333/13916000003349999904961
/92381/13916000003349999904913
/94151/13916000003349999903143
/95267/13916000003349999902027
/95471/13916000003349999901823
/96167/13916000003349999901127
/96497/13916000003349999900797
/96581/13916000003349999900713
/97553/13916000003349999899741
/98411/13916000003349999898883
/98627/13916000003349999898667
/98807/13916000003349999898487
/98963/13916000003349999898331
/100193/13916000003349999897101
/100517/13916000003349999896777
/100937/13916000003349999896357
/101111/13916000003349999896183
/101141/13916000003349999896153
/101477/13916000003349999895817
/101573/13916000003349999895721
/102551/13916000003349999894743
/102761/13916000003349999894533
/103091/13916000003349999894203
/104933/13916000003349999892361
/105137/13916000003349999892157
/105467/13916000003349999891827
/105527/13916000003349999891767
/105701/13916000003349999891593
/106121/13916000003349999891173
/106373/13916000003349999890921
/106433/13916000003349999890861
/106487/13916000003349999890807
/107243/13916000003349999890051
/108203/13916000003349999889091
/108533/13916000003349999888761
/108707/13916000003349999888587
/109133/13916000003349999888161
/109331/13916000003349999887963
/111443/13916000003349999885851
/111791/13916000003349999885503
/112103/13916000003349999885191
/112247/13916000003349999885047
/112403/13916000003349999884891
/112583/13916000003349999884711
/112967/13916000003349999884327
/112997/13916000003349999884297
/113363/13916000003349999883931
/113591/13916000003349999883703
/113837/13916000003349999883457
/114221/13916000003349999883073
/115067/13916000003349999882227
/115853/13916000003349999881441
/116867/13916000003349999880427
/117023/13916000003349999880271
/117071/13916000003349999880223
/117371/13916000003349999879923
/117731/13916000003349999879563
/117773/13916000003349999879521
/117917/13916000003349999879377
/118037/13916000003349999879257
/118127/13916000003349999879167
/119891/13916000003349999877403
(这一段密度有所增长,但不再计算总数了。这么大的偶数要计算出实际总数,一台普通电脑不行,用并行程序或者叫分布程序,成千上万台联网并行计算每台分别计算其中不同的一段,或许可能解决。大型服务器电脑,如果可以运行并行程序或许可以解决?如果量子计算机制造出来了,用量子计算机运行并行程序那肯定很快就能解决,不过证明哥德巴赫猜想一般用不着这么大的偶数,用不到这么大的数据,其他方面的研究或许用到,或许是有价值的。后面就不再计算了)
回复 支持 反对

使用道具 举报

 楼主| 发表于 2021-4-10 04:54 | 显示全部楼层
1与50000000之间打头的素数有291400组偶数100000000的哥猜素数和对:(用时-59698.13秒)
/11/99999989
/29/99999971
/41/99999959
/59/99999941
/173/99999827
/179/99999821
/227/99999773
/383/99999617
/389/99999611
/449/99999551
/461/99999539
/491/99999509
/563/99999437
/599/99999401
/647/99999353
/677/99999323
/743/99999257
/887/99999113
/911/99999089
/1091/99998909
/1109/99998891
/1181/99998819
/1217/99998783
/1487/99998513
/1553/99998447
/1559/99998441
/1571/99998429
/1583/99998417
(这个结果是对的,运行时间太长。)
回复 支持 反对

使用道具 举报

 楼主| 发表于 2021-4-12 17:45 | 显示全部楼层
网上查到的高手编程的大数乘法程序:暂时发一下,要学习研究

Dim j1&, j2&, e&, d&, e1&

03.    '开始计算乘法

04.    T2 = timeGetTime

05.    ' 按列法计算C=A*B

06.    MC = Ma + Mb

07.    ReDim C(MC)

08.    e1 = 0

09.    j1 = Ma: j2 = Ma

10.    For i = MC To 2 Step -1

11.        If i <= Ma Then j2 = i - 1

12.        e = e1: e1 = 0

13.        For j = j1 To j2

14.            e = e + A(j) * B(i - j)

15.            If e > 2040000000 Then '减少进位次数

16.                e = e - 2040000000

17.                e1 = e1 + 204000

18.            End If

19.        Next j

20.        If j1 > 1 Then j1 = j1 - 1

21.        '

22.        d = e \ Base

23.        C(i) = e - d * Base

24.        e1 = e1 + d

25.    Next i

26.    C(1) = e1

27.    T2 = timeGetTime - T2
回复 支持 反对

使用道具 举报

 楼主| 发表于 2021-4-12 17:51 | 显示全部楼层
下面是多线程乘法,不知道代码是否完整:
If DoubleThread Then '''''多线程

03.   

04.        MidNum = (MaxNum + 1) / 2

05.        StartThreadNum = MidNum

06.        IfThreadEnd = 0

07.        EndThreadNum = MinNum

08.        mHandle = CreateThread(ByVal 0&, ByVal 0&, AddressOf Thread1, ByVal 0&, 0&, lpThreadId)

09.        DoEvents

10.        For N = MaxNum To StartThreadNum + 1 Step -1

11.            TempNum = 0

12.            T = 0

13.                L = MaxNum - N + 1

14.                If L > MinNum Then L = MinNum

15.                J = N - MaxNumA

16.                I = N - J

17.                For M = 1 To L

18.                    T = T + TmpNumA(I) * TmpNumB(J)

19.                    If T >= CellLong2 Then

20.                        E = T \ CellLong

21.                        TempNum = TempNum + E

22.                        T = T - E * CellLong

23.                    End If

24.                    J = J + 1

25.                    I = I - 1

26.                Next M

27.            If T >= CellLong Then

28.                E = T \ CellLong

29.                TempNum = TempNum + E

30.                T = T - E * CellLong

31.            End If

32.            TmpResult(N - 1) = TmpResult(N - 1) + TempNum

33.            TmpResult(N) = TmpResult(N) + T

34.        Next N

35.   

36.        While IfThreadEnd = 1 '处理同步

37.            DoEvents

38.        Wend

39.    Else

40.        

41.        MidNum = (MaxNum + 1) / 2

42.        For N = MaxNum To 2 Step -1

43.            TempNum = 0

44.            T = 0

45.            If N <= MidNum Then

46.                L = N - 1

47.                If L > MinNum Then L = MinNum

48.                I = N - 1

49.                J = 1

50.            Else

51.                L = MaxNum - N + 1

52.                If L > MinNum Then L = MinNum

53.                J = N - MaxNumA

54.                I = N - J

55.            End If

56.                For M = 1 To L

57.                    T = T + TmpNumA(I) * TmpNumB(J)

58.                    If T >= CellLong2 Then

59.                        E = T \ CellLong

60.                        TempNum = TempNum + E

61.                        T = T - E * CellLong

62.                    End If

63.                    J = J + 1

64.                    I = I - 1

65.                Next M

66.            

67.            If T >= CellLong Then

68.                E = T \ CellLong

69.                TempNum = TempNum + E

70.                T = T - E * CellLong

71.            End If

72.            TmpResult(N - 1) = TmpResult(N - 1) + TempNum

73.            TmpResult(N) = TmpResult(N) + T

74.        Next N

75.    End If
'线程部分程序:
02.Public Sub Thread1()

03.Dim M As Long, N As Long, T As Long, E As Long ', MN As Long

04.Dim TempNum As Long, L As Long, I As Long, J As Long

05.IfThreadEnd = 1

06.        For N = StartThreadNum To 2 Step -1

07.            TempNum = 0

08.            T = 0

09.            'If N <= MidNum Then

10.                L = N - 1

11.                If L > EndThreadNum Then L = EndThreadNum

12.                I = N - 1

13.                J = 1

14.                For M = 1 To L

15.                    T = T + TmpNumA(I) * TmpNumB(J)

16.                    If T >= CellLong2 Then

17.                        E = T \ CellLong

18.                        TempNum = TempNum + E

19.                        T = T - E * CellLong

20.                    End If

21.                    J = J + 1

22.                    I = I - 1

23.                Next M

24.            If T >= CellLong Then

25.                E = T \ CellLong

26.                TempNum = TempNum + E

27.                T = T - E * CellLong

28.            End If

29.            TmpResult2(N - 1) = TmpResult2(N - 1) + TempNum

30.            TmpResult2(N) = TmpResult2(N) + T

31.        Next N

32.IfThreadEnd = -1

33.ExitThread 0

34.End Sub

回复 支持 反对

使用道具 举报

 楼主| 发表于 2021-4-12 19:09 | 显示全部楼层
本帖最后由 ysr 于 2021-4-12 11:30 编辑

135#楼的程序改进了一下,居然能用了,结果:12345*23456=289564320用时0秒。(结果是正确的)

改进后的代码如下:

Private Sub Command1_Click()
Dim j1&, j2&, e&, d&, e1&

  '开始计算乘法

  t2 = Timer

   ' 按列法计算C=A*B
m = Trim(Text1): n = Trim(Text2)
x = Len(m): y = Len(n)
Dim a(), b()
ReDim a(1 To x): ReDim b(1 To y)
For i1 = 1 To x
a(i1) = Mid(m, i1, 1)
Next
For i2 = 1 To y
b(i2) = Mid(n, i2, 1)
Next

ma = x: mb = y

    MC = ma + mb

    ReDim c(MC)

    e1 = 0

    j1 = ma: j2 = ma

    For i = MC To 2 Step -1

        If i <= ma Then j2 = i - 1

        e = e1: e1 = 0

        For j = j1 To j2

            e = e + a(j) * b(i - j)

            If e > 2040000000 Then '减少进位次数

                e = e - 2040000000
                e1 = e1 + 204000

            End If

        Next j

        If j1 > 1 Then j1 = j1 - 1

        '
base = 10
        d = e \ base

        c(i) = e - d * base

        e1 = e1 + d
jc = c(i) & jc
    Next i

    jc = d & jc

    t2 = Timer - t2
   
    Text3 = jc & "用时" & t2 & "秒"

End Sub

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

End Sub
回复 支持 反对

使用道具 举报

 楼主| 发表于 2021-4-12 19:19 | 显示全部楼层
本帖最后由 ysr 于 2021-4-12 11:34 编辑

51750801837147361345408953922231823615475578427966187002956389087112242842559611794590895524485015222232340190036677951157401229518412775512617768569186939216558814320044037671525512763073762127357272238470370174050144130962253437215369727381909754581075278888137687950749577751967083233227932391898438489520107788418593104216764745143648165875043861634459264809523254076330115365651752264033578829280651927862062277153553168278640509846511729608378923480331705134467105387853440058108864733429085916392927954109944314725590758950098556991513109760871599045355054258610189920009222629391227784118536578933067532162200768112408111142115021110731900107445187734955403922470144187293970602024056652942406064101184615113779243566842311336047149767396006622923831778833173731302325162741660053390002572456069410383734906953419854919650114722834689335022576764661864630532595250136417800041415827379233503655173380741283758557001102498493237113089198106283487003030225058520047964863929279622015825870972146222540614667928697270131499340362072956956518213266361286372027834000838185920579641835952404678850816456467012890793914108776148483471455515695596694573035435841962871983614397882366460940068418989292218104650923374259244879331938925143014431488635252724366437874702141802712286424754174951797598162531093933772708024046029028652425912112434874797404878317364682580259997737809632860143160557722236459697738869857870982308547756781808568834445404196611833859447257611721058384661943492980180884154939581533269700568975940675513953240040220315659784214936947443784598154082110443748171557676558299300252057475022409541083454882202785077569281268346332901357829843950754331120530978456454396022570647840977328115888711408099894489014427119253061839770890965114853246067272044090282103668762164047374624856119676063310166566519499552342907590495696658359542582469176737197423550084705962160477441546453931948920780829433665262356431973422034925001341330921812806939990688094288773216182971976433480031438271163051341645350474631300965486818841553843112688792803367397276204832936049162335586140151875524537720425345701193713093955432559579831822084761702059241698184717469616732582600658006352069963017377661059372648121969448644394344799369193952197519795756182552461838014896498816263546256621347748100920475049252091842372001283217811864786225692344297842649982716736752004086642881662614773154743879410328420184057019873899911520017723788801*
51750801837147361345408953922231823615475578427966187002956389087112242842559611794590895524485015222232340190036677951157401229518412775512617768569186939216558814320044037671525512763073762127357272238470370174050144130962253437215369727381909754581075278888137687950749577751967083233227932391898438489520107788418593104216764745143648165875043861634459264809523254076330115365651752264033578829280651927862062277153553168278640509846511729608378923480331705134467105387853440058108864733429085916392927954109944314725590758950098556991513109760871599045355054258610189920009222629391227784118536578933067532162200768112408111142115021110731900107445187734955403922470144187293970602024056652942406064101184615113779243566842311336047149767396006622923831778833173731302325162741660053390002572456069410383734906953419854919650114722834689335022576764661864630532595250136417800041415827379233503655173380741283758557001102498493237113089198106283487003030225058520047964863929279622015825870972146222540614667928697270131499340362072956956518213266361286372027834000838185920579641835952404678850816456467012890793914108776148483471455515695596694573035435841962871983614397882366460940068418989292218104650923374259244879331938925143014431488635252724366437874702141802712286424754174951797598162531093933772708024046029028652425912112434874797404878317364682580259997737809632860143160557722236459697738869857870982308547756781808568834445404196611833859447257611721058384661943492980180884154939581533269700568975940675513953240040220315659784214936947443784598154082110443748171557676558299300252057475022409541083454882202785077569281268346332901357829843950754331120530978456454396022570647840977328115888711408099894489014427119253061839770890965114853246067272044090282103668762164047374624856119676063310166566519499552342907590495696658359542582469176737197423550084705962160477441546453931948920780829433665262356431973422034925001341330921812806939990688094288773216182971976433480031438271163051341645350474631300965486818841553843112688792803367397276204832936049162335586140151875524537720425345701193713093955432559579831822084761702059241698184717469616732582600658006352069963017377661059372648121969448644394344799369193952197519795756182552461838014896498816263546256621347748100920475049252091842372001283217811864786225692344297842649982716736752004086642881662614773154743879410328420184057019873899911520017723788801=
2678145490787694710138406683675886762424440548647327525594133873038347266950777818028529804877891353347244255046176220880989519574806598935727647635506939520211209794328712328126947740602255036264392628020291100698432900022333877728824270241063030019536831205264726059774673235680796770108334187808344470141093691232926021244583649747591446066921535333854157441330339217364515328375889937313870826987520723914810358707312468857074455945610038118763873992681688857200178452843740327143990247797893489008808544535536081089994800692174759199578596435124153437689121057209523619989593900355037400039597165241729693472001589594642879166693443994939359639600558001937547209387175085119128575833396037478944824322315197771750730768383267287661855880237549141571520374996029107650341071074081501632143441365461865431362023790463469688071768208320226561675630348708531708110373889241713511809029065048200924851629507265095151843687852114948736130517024578482059771284515915597919026074110811882700307150650858080695566672584075215926450360584738705106755945308199980660478183563586945902705730231409948938478910176292179410952310592864745025373902249844607078729230098512959498522851990040833671698873183076996740726479481352429756295966452788332789259316653805673821716832204368483794501474641036177256005810416507649770210480747056764697918800240201155395628561684853684747063434500664449114760179367086926249813006056735202795763742271472136500817313178050955623517148960973128433455798444839070215800699075256371341531892841721456473301085595261371522078416420399702683504171019191363372883472415693921509069484448792009627325245658854979159002549542769741504596589556474585723101403486046952706847309188488390899096649210853675228464611999630360164703837131620319658277117300208326944026347808645954842782309633205645471959842390075986572806483755223497552549948718545978420793425036666212191832327909389117021539426917904222971515424022606157676379417252939026404363841301595348953340657745965591468370831371449860774296757556463049237248472613472436666799615694672489600751763956185893123579218797539971253828850163437053164723845196089466298000486042246621634263064752906475198879616484926366053597071510886820878425907736453843197228282179943365206039514850477377542684361730162273246709577442085159313947668552462343596819299335060863266863059421286080919061657175757802930378698062290163092494909661982639303946271889619023417245433500782685534406291391527022657608608130680134939380126048353657648559735671562230714451258764762350451448379438849319710473631625533527602085050858633346936315115309333355986556546113134787213610042970405680162084678021281774169131725296977361816657904233850711837826724976507876061043779177845550646612327663283839673950405472039432309339110648301347672597370034346896334064135099613033528785924976781865447506814375627647103020761819104412269362847848884053177378762432543285984193091289854949394023586451139393716370633759317698908834326333339634557238526607966375935960004339535161203546369910853171524516945554862019134684985868547068709986010719120259421723270478586992153989283736650948010894951434857207445141886625290777550599700738909777829412358941157674866550887608199469723859806486384262574182811908513849905040209776132986875560077482527819093584150609347560543627976011009349905362597935257895287412087233810106693141683912683308201407373637490835862452911394718399632093441745957478079754723679119343225931665785380948807114301164623717144211285944154289093317610519159281033583963015810556464180819928345256832572962092994993950655913067768151113345566231088759030148164710287289335782462899525700500822021472132532771242198844498579102733028256523810973405350508253183399668290339844052874956694050028526577775764032598023622192221226501334606994447870277619118208162133562541678250491647671042612088902952091163094215645902682086024337098910110924115381788866213335441814530141911754446270296630426675020592640816713810936850961517475097707179713115856513919631998747192606018612535436009162735908155778165736923393260822217415131632296810207091918499370220533980666393617256227781299273913099896641458499949922475383775878771011361417556799406151773618626138749998464514570482965286184387350245762317271666329142667987131139265167425606863654107927682419958167046956962340419295394058625063862272314570914511355913547470055072878835349142049813368019960713974852351833144227544851625677753419141348585495260230041111323576432417502998832485027071744397105338790364666312325483218209150368759120749671419554589928540715813531144241705501211397506662448276056294585639532800634727428900861538486753011006379264618338782036690340859441153926551954112364946638768223012718907190897165613382555036872673785444132692292217184974818914501886689736449912131900762592363447945036085692999163815947845753538999001633767986447907729462453017601用时2.21875秒,有4888位(速度可以,最高位不对了好像,应该是4888位,可能是最高位少了一个2,再修改一下吧)

修改了一下,这回对了,把楼上的代码再改一下,添加修改部分。代码还有提升空间,改为4位当一个字符的试试怎么样吧。
(这样会产生前导0的,如:12345*23456=0289564320用时0秒,有10位,所以,还需要加上去掉前导0的程序)
回复 支持 反对

使用道具 举报

 楼主| 发表于 2021-4-12 19:50 | 显示全部楼层
本帖最后由 ysr 于 2021-4-12 12:15 编辑

改成4位一组的试了一下,结果也是对的:12345*23456=0289564320用时0秒,有10位。
再试试那个大整数:(结果不对,速度提高了,还产生了前导0,再修改一下把)(改了一下,这回对了,可能中间少了许多0,修改后结果多了5个前导0)
51750801837147361345408953922231823615475578427966187002956389087112242842559611794590895524485015222232340190036677951157401229518412775512617768569186939216558814320044037671525512763073762127357272238470370174050144130962253437215369727381909754581075278888137687950749577751967083233227932391898438489520107788418593104216764745143648165875043861634459264809523254076330115365651752264033578829280651927862062277153553168278640509846511729608378923480331705134467105387853440058108864733429085916392927954109944314725590758950098556991513109760871599045355054258610189920009222629391227784118536578933067532162200768112408111142115021110731900107445187734955403922470144187293970602024056652942406064101184615113779243566842311336047149767396006622923831778833173731302325162741660053390002572456069410383734906953419854919650114722834689335022576764661864630532595250136417800041415827379233503655173380741283758557001102498493237113089198106283487003030225058520047964863929279622015825870972146222540614667928697270131499340362072956956518213266361286372027834000838185920579641835952404678850816456467012890793914108776148483471455515695596694573035435841962871983614397882366460940068418989292218104650923374259244879331938925143014431488635252724366437874702141802712286424754174951797598162531093933772708024046029028652425912112434874797404878317364682580259997737809632860143160557722236459697738869857870982308547756781808568834445404196611833859447257611721058384661943492980180884154939581533269700568975940675513953240040220315659784214936947443784598154082110443748171557676558299300252057475022409541083454882202785077569281268346332901357829843950754331120530978456454396022570647840977328115888711408099894489014427119253061839770890965114853246067272044090282103668762164047374624856119676063310166566519499552342907590495696658359542582469176737197423550084705962160477441546453931948920780829433665262356431973422034925001341330921812806939990688094288773216182971976433480031438271163051341645350474631300965486818841553843112688792803367397276204832936049162335586140151875524537720425345701193713093955432559579831822084761702059241698184717469616732582600658006352069963017377661059372648121969448644394344799369193952197519795756182552461838014896498816263546256621347748100920475049252091842372001283217811864786225692344297842649982716736752004086642881662614773154743879410328420184057019873899911520017723788801*
51750801837147361345408953922231823615475578427966187002956389087112242842559611794590895524485015222232340190036677951157401229518412775512617768569186939216558814320044037671525512763073762127357272238470370174050144130962253437215369727381909754581075278888137687950749577751967083233227932391898438489520107788418593104216764745143648165875043861634459264809523254076330115365651752264033578829280651927862062277153553168278640509846511729608378923480331705134467105387853440058108864733429085916392927954109944314725590758950098556991513109760871599045355054258610189920009222629391227784118536578933067532162200768112408111142115021110731900107445187734955403922470144187293970602024056652942406064101184615113779243566842311336047149767396006622923831778833173731302325162741660053390002572456069410383734906953419854919650114722834689335022576764661864630532595250136417800041415827379233503655173380741283758557001102498493237113089198106283487003030225058520047964863929279622015825870972146222540614667928697270131499340362072956956518213266361286372027834000838185920579641835952404678850816456467012890793914108776148483471455515695596694573035435841962871983614397882366460940068418989292218104650923374259244879331938925143014431488635252724366437874702141802712286424754174951797598162531093933772708024046029028652425912112434874797404878317364682580259997737809632860143160557722236459697738869857870982308547756781808568834445404196611833859447257611721058384661943492980180884154939581533269700568975940675513953240040220315659784214936947443784598154082110443748171557676558299300252057475022409541083454882202785077569281268346332901357829843950754331120530978456454396022570647840977328115888711408099894489014427119253061839770890965114853246067272044090282103668762164047374624856119676063310166566519499552342907590495696658359542582469176737197423550084705962160477441546453931948920780829433665262356431973422034925001341330921812806939990688094288773216182971976433480031438271163051341645350474631300965486818841553843112688792803367397276204832936049162335586140151875524537720425345701193713093955432559579831822084761702059241698184717469616732582600658006352069963017377661059372648121969448644394344799369193952197519795756182552461838014896498816263546256621347748100920475049252091842372001283217811864786225692344297842649982716736752004086642881662614773154743879410328420184057019873899911520017723788801=
000002678145490787694710138406683675886762424440548647327525594133873038347266950777818028529804877891353347244255046176220880989519574806598935727647635506939520211209794328712328126947740602255036264392628020291100698432900022333877728824270241063030019536831205264726059774673235680796770108334187808344470141093691232926021244583649747591446066921535333854157441330339217364515328375889937313870826987520723914810358707312468857074455945610038118763873992681688857200178452843740327143990247797893489008808544535536081089994800692174759199578596435124153437689121057209523619989593900355037400039597165241729693472001589594642879166693443994939359639600558001937547209387175085119128575833396037478944824322315197771750730768383267287661855880237549141571520374996029107650341071074081501632143441365461865431362023790463469688071768208320226561675630348708531708110373889241713511809029065048200924851629507265095151843687852114948736130517024578482059771284515915597919026074110811882700307150650858080695566672584075215926450360584738705106755945308199980660478183563586945902705730231409948938478910176292179410952310592864745025373902249844607078729230098512959498522851990040833671698873183076996740726479481352429756295966452788332789259316653805673821716832204368483794501474641036177256005810416507649770210480747056764697918800240201155395628561684853684747063434500664449114760179367086926249813006056735202795763742271472136500817313178050955623517148960973128433455798444839070215800699075256371341531892841721456473301085595261371522078416420399702683504171019191363372883472415693921509069484448792009627325245658854979159002549542769741504596589556474585723101403486046952706847309188488390899096649210853675228464611999630360164703837131620319658277117300208326944026347808645954842782309633205645471959842390075986572806483755223497552549948718545978420793425036666212191832327909389117021539426917904222971515424022606157676379417252939026404363841301595348953340657745965591468370831371449860774296757556463049237248472613472436666799615694672489600751763956185893123579218797539971253828850163437053164723845196089466298000486042246621634263064752906475198879616484926366053597071510886820878425907736453843197228282179943365206039514850477377542684361730162273246709577442085159313947668552462343596819299335060863266863059421286080919061657175757802930378698062290163092494909661982639303946271889619023417245433500782685534406291391527022657608608130680134939380126048353657648559735671562230714451258764762350451448379438849319710473631625533527602085050858633346936315115309333355986556546113134787213610042970405680162084678021281774169131725296977361816657904233850711837826724976507876061043779177845550646612327663283839673950405472039432309339110648301347672597370034346896334064135099613033528785924976781865447506814375627647103020761819104412269362847848884053177378762432543285984193091289854949394023586451139393716370633759317698908834326333339634557238526607966375935960004339535161203546369910853171524516945554862019134684985868547068709986010719120259421723270478586992153989283736650948010894951434857207445141886625290777550599700738909777829412358941157674866550887608199469723859806486384262574182811908513849905040209776132986875560077482527819093584150609347560543627976011009349905362597935257895287412087233810106693141683912683308201407373637490835862452911394718399632093441745957478079754723679119343225931665785380948807114301164623717144211285944154289093317610519159281033583963015810556464180819928345256832572962092994993950655913067768151113345566231088759030148164710287289335782462899525700500822021472132532771242198844498579102733028256523810973405350508253183399668290339844052874956694050028526577775764032598023622192221226501334606994447870277619118208162133562541678250491647671042612088902952091163094215645902682086024337098910110924115381788866213335441814530141911754446270296630426675020592640816713810936850961517475097707179713115856513919631998747192606018612535436009162735908155778165736923393260822217415131632296810207091918499370220533980666393617256227781299273913099896641458499949922475383775878771011361417556799406151773618626138749998464514570482965286184387350245762317271666329142667987131139265167425606863654107927682419958167046956962340419295394058625063862272314570914511355913547470055072878835349142049813368019960713974852351833144227544851625677753419141348585495260230041111323576432417502998832485027071744397105338790364666312325483218209150368759120749671419554589928540715813531144241705501211397506662448276056294585639532800634727428900861538486753011006379264618338782036690340859441153926551954112364946638768223012718907190897165613382555036872673785444132692292217184974818914501886689736449912131900762592363447945036085692999163815947845753538999001633767986447907729462453017601用时0.15625秒,有4893位
回复 支持 反对

使用道具 举报

 楼主| 发表于 2021-4-12 20:18 | 显示全部楼层
这个程序速度比较快,发一下代码:

Private Sub Command1_Click()
Dim j1&, j2&, e&, d&, e1&

  '开始计算乘法

  t2 = Timer

   ' 按列法计算C=A*B
m = Trim(Text1): n = Trim(Text2)
X = Len(m) \ 4: Y = Len(n) \ 4
m = String(4 * X + 4 - Len(m), "0") & m
n = String(4 * Y + 4 - Len(n), "0") & n
X = X + 1: Y = Y + 1
Dim a(), b()
ReDim a(1 To X): ReDim b(1 To Y)
For i1 = 1 To X
a(i1) = Mid(m, i1 * 4 - 3, 4)
Next
For i2 = 1 To Y
b(i2) = Mid(n, i2 * 4 - 3, 4)
Next

ma = X: mb = Y

    MC = ma + mb

    ReDim c(MC)

    e1 = 0

    j1 = ma: j2 = ma

    For i = MC To 2 Step -1

        If i <= ma Then j2 = i - 1

        e = e1: e1 = 0

        For j = j1 To j2

            e = e + a(j) * b(i - j)

            If e > 2040000000 Then '减少进位次数

                e = e - 2040000000
                e1 = e1 + 204000

            End If

        Next j

        If j1 > 1 Then j1 = j1 - 1

        '
base = 10000
        d = e \ base

        c(i) = e - d * base
        If Len(c(i)) < 4 Then
        c(i) = String(4 - Len(c(i)), "0") & c(i)
        Else
        c(i) = c(i)
        End If
jc = c(i) & jc
        e1 = e1 + d

    Next i

    jc = d & jc

    t2 = Timer - t2
   
    Text3 = jc & "用时" & t2 & "秒,有" & Len(jc) & "位"

End Sub

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

End Sub
回复 支持 反对

使用道具 举报

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

本版积分规则

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

GMT+8, 2024-12-22 14:20 , Processed in 0.078125 second(s), 14 queries .

Powered by Discuz! X3.4

Copyright © 2001-2020, Tencent Cloud.

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