| 网站首页 | 业界新闻 | 小组 | 威客 | 人才 | 下载频道 | 博客 | 代码贴 | 在线编程 | 编程论坛
欢迎加入我们,一同切磋技术
用户名:   
 
密 码:  
共有 31005 人关注过本帖
标题:各位老师好!求助编辑一个大整数的快速乘除法可调用程序
取消只看楼主 加入收藏
ysr2857
Rank: 16Rank: 16Rank: 16Rank: 16
等 级:版主
威 望:34
帖 子:809
专家分:77
注 册:2020-2-10
收藏
得分:0 
回复 388楼 wmf2014
谢谢您关注和回复!计算(2^99368963-1)mod 198737927的结果不超过1秒钟,那这个程序速度快效率高!结果是2^99368963-1可以整除198737927,那就是说2^99368963-1是个合数,不是素数了。
结果很好,是个重要成果,可惜无法给你加分了,怎么能给你加分呢?

非常感谢!
2022-03-17 16:54
ysr2857
Rank: 16Rank: 16Rank: 16Rank: 16
等 级:版主
威 望:34
帖 子:809
专家分:77
注 册:2020-2-10
收藏
得分:0 
回复 390楼 xianfajushi
谢谢回复,200万是说的啥数据呀?我怎么不明白呢?
2022-03-25 13:14
ysr2857
Rank: 16Rank: 16Rank: 16Rank: 16
等 级:版主
威 望:34
帖 子:809
专家分:77
注 册:2020-2-10
收藏
得分:0 
回复 388楼 wmf2014
python编程如何学习?本论坛有这个栏目吗?

[此贴子已经被作者于2022-6-22 00:07编辑过]

2022-06-21 22:23
ysr2857
Rank: 16Rank: 16Rank: 16Rank: 16
等 级:版主
威 望:34
帖 子:809
专家分:77
注 册:2020-2-10
收藏
得分:0 
快速判断大素数的程序:(从text1到text2)
分段筛选素数表.zip (22.25 KB)
2022-08-28 15:31
ysr2857
Rank: 16Rank: 16Rank: 16Rank: 16
等 级:版主
威 望:34
帖 子:809
专家分:77
注 册:2020-2-10
收藏
得分:0 
292752622924000738929990585203与292752622924000738929990605203之间有12对差大于200的素数对:
292752622924000738929990590003/252
292752622924000738929990590893/426
292752622924000738929990592987/246
292752622924000738929990594193/546
292752622924000738929990595471/222
292752622924000738929990596191/704
292752622924000738929990598091/292
292752622924000738929990598793/240
292752622924000738929990599953/236
292752622924000738929990602057/318
292752622924000738929990603949/266
292752622924000738929990605063/234
用时3681.472秒

这段有个704的间距,数据显示程序在1小时内最多只能判断1万个30位的奇数,如何提高速度呢?


[此贴子已经被作者于2022-9-28 06:00编辑过]

2022-09-28 05:57
ysr2857
Rank: 16Rank: 16Rank: 16Rank: 16
等 级:版主
威 望:34
帖 子:809
专家分:77
注 册:2020-2-10
收藏
得分:0 
Private Sub Command1_Click()
'研究某数蔡氏素数的程序
Dim a, b
a = Trim(Text1)
a1 = a
q = Trim(Text2)

If Right(a, 1) Mod 2 = 0 Then
a = a + 1
Else
a = a
End If
m = MPC(Trim(a), 1)
s = 0
Do While m <= q And p1 < Val(q)
Do While a < Val(m)
Do While InStr(fenjieyinzi0(Trim(a)), "*") > 0
a = MPC1(Trim(a), 2)
Loop

p1 = a
p2 = MPC(Trim(m), Trim(p1))
p3 = MPC1(Trim(p2), 60)
p4 = MPC1(Trim(p2), "1180591620717411303420")
Print p1
If Val(p2) > 0 And InStr(fenjieyinzi0(Trim(p1)), "*") = 0 And InStr(fenjieyinzi0(Trim(p2)), "*") = 0 And InStr(fenjieyinzi0(Trim(p3)), "*") = 0 And InStr(fenjieyinzi0(Trim(p4)), "*") = 0 Then
Text3 = Text3 & "2m=" & m & "p1=" & p1 & "p2=" & p2 & "p3=" & p3 & "p4=" & p4 & vbCrLf
s = s + 1
s103 = s103 & "/" & m

Else
m = m
End If

a = MPC1(Trim(a), 2)

Loop
m = MPC1(Trim(m), 2)
a = 3
Loop

Text4 = q & "内的不同偶数" & s103
Combo1 = "从" & a1 & "到" & q & "内有" & s & "组蔡氏偶数有" & Val(s) & "个不同的偶数" & Text3

End Sub
2022-09-28 06:52
ysr2857
Rank: 16Rank: 16Rank: 16Rank: 16
等 级:版主
威 望:34
帖 子:809
专家分:77
注 册:2020-2-10
收藏
得分:0 
判断大素数的代码:

Private Function fenjieyinzi0(sa As String) As String
Dim a, n
n = Trim(sa)
If Len(n) < 11 Then
fenjieyinzi0 = fenjieyinzi(Trim(n))
Else
n1 = MPC(Trim(n), 1)
a = 123
'a为明文
a1 = zzxc(Trim(n), Trim(a))
If Val(a1) > 1 Then
fenjieyinzi0 = a1 & "*"
Else
c = 999
'c为公约
Do While zzxc(Trim(n1), Trim(c)) > 1
c = Val(c - 1)
Loop
d = qniyuan(Trim(c), Trim(n1))
'd为逆元为私钥
a2 = qksmimo(Trim(a), Trim(c), Trim(n))
'a2为密文
a3 = qksmimo(Trim(a2), Trim(d), Trim(n))
If MBJC(Trim(a3), Trim(a)) = 0 Then
fenjieyinzi0 = "这是素数有"
Else
fenjieyinzi0 = "2*2"
End If
End If
End If


End Function
2022-09-28 06:55
ysr2857
Rank: 16Rank: 16Rank: 16Rank: 16
等 级:版主
威 望:34
帖 子:809
专家分:77
注 册:2020-2-10
收藏
得分:0 
1000002100内有1组蔡氏素数:
1000001329,9173994463960286046443283581208347763186259956673124494950355357547691504353939232280074212440503746219891,9173994463960286046443283581208347763186259956673124494950355357547691504353939232280074212440503746219893,4n+2=9173994463960286046443283581208347763186259956673124494950355357547691504353939232280074212440502746218562
用时9692.083秒(其中有一对106位的孪生素数)
2022-10-11 16:04
ysr2857
Rank: 16Rank: 16Rank: 16Rank: 16
等 级:版主
威 望:34
帖 子:809
专家分:77
注 册:2020-2-10
收藏
得分:0 
判断素数的程序

Python代码:

from math import sqrtdef is_prime(n):    if n == 1:        return False    for i in range(2, int(sqrt(n))+1):        if n % i == 0:            return False    return True

这个程序对吗?
2022-12-14 17:35
ysr2857
Rank: 16Rank: 16Rank: 16Rank: 16
等 级:版主
威 望:34
帖 子:809
专家分:77
注 册:2020-2-10
收藏
得分:0 
回复 88楼 wmf2014
If Len(n) < 6 Then
Text2 = fenjieyinzi(Trim(n))

这里的小于6应该改为小于11,经过我研究确认,11位以上的整数,此方法的原理才成立才有效呢

[此贴子已经被作者于2023-12-27 23:38编辑过]

2023-12-27 23:03
快速回复:各位老师好!求助编辑一个大整数的快速乘除法可调用程序
数据加载中...
 
   



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

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