ysr 发表于 2023-12-16 13:53

Private Sub Command1_Click()

Dim n, i, s
n = Trim(Text1)
s = Trim(Text2)
i = MbC(Trim(s), 2)
n2 = n
i2 = i
Do While s1 < 300
s1 = s1 + 1
Do While MBJC(Trim(s), zhengchuqyushu(MCC1(Trim(n), Trim(i)))) < 0 And MBJC(zzxc(Trim(n), Trim(i)), 1) = 0

r = zhengchuqyushu(MCC1(Trim(n), Trim(i)))

i = r

Loop
If MBJC(zzxc(Trim(n), Trim(i)), 1) = 0 Then
s3 = "wujie"
Else
s2 = s2 + 1
p = zzxc(Trim(n), Trim(i))
s4 = p
's4 = s4 & "" & MCC(MPC1(Trim(i), 1), 2)
End If
n = n2
i2 = i2 - 1
i = i2
Loop

If s2 > 0 Then
Text3 = s4
Else
Text3 = s3
End If


End Sub

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

ysr 发表于 2023-12-16 15:41

Private Sub Command1_Click()

Dim n, i, s
n = Trim(Text1)
s = Trim(Text2)
i = MbC(Trim(s), 3)
n2 = n
i2 = i
Do While s1 < 400
s1 = s1 + 1
Do While MBJC(Trim(s), zhengchuqyushu(MCC1(Trim(n), Trim(i)))) < 0 And MBJC(zzxc(Trim(n), Trim(i)), 1) = 0

r = zhengchuqyushu(MCC1(Trim(n), Trim(i)))
n = zhengchuqy(MCC1(Trim(n), Trim(i)))
i = r

Loop
If MBJC(zzxc(Trim(n), Trim(i)), 1) = 0 Then
s3 = "wujie"
Else
s2 = s2 + 1
p = zzxc(Trim(n), Trim(i))
s4 = p
's4 = s4 & "" & MCC(MPC1(Trim(i), 1), 3)
End If
n = n2
i2 = i2 - 1
i = i2
Loop

If s2 > 0 Then
Text3 = s4
Else
Text3 = s3
End If


End Sub

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

ysr 发表于 2023-12-18 20:59

本帖最后由 ysr 于 2023-12-21 05:37 编辑

'这个代码可以快速判断大素数而且是确定性的
Private Sub Command1_Click()
Dim a, n
n = Trim(Text1)
n3 = n
m = Trim(Text2)
Do While MBJC(Trim(n), 3) < 0
If MBJC(Trim(n), 2) = 0 Then
m1 = m1 & n & ""
s = s + 1
Else
m1 = m1
End If
n = n + 1
Loop
If Right(n, 1) Mod 2 = 0 Then
n = MPC1(Trim(n), 1)
Else
n = n
End If
Do While MBJC(Trim(n), Trim(m)) <= 0
If Len(n) < 11 Then
a1 = fenjieyinzi(Trim(n))
If InStr(a1, "*") = 0 Then
s = s + 1
If s Mod 10 = 0 Then
m1 = m1 & n & vbCrLf
Else
m1 = m1 & n & ""
End If
Else
m1 = m1
End If
Else
n1 = MPC(Trim(n), 1)
a = 123
'a为明文
a1 = zzxc(Trim(n), Trim(a))
If Val(a1) > 1 Then
m1 = m1
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
s = s + 1
If s Mod 10 = 0 Then
m1 = m1 & n & vbCrLf
Else
m1 = m1 & n & ""
End If
Else
m1 = m1
End If
End If
End If
n = MPC1(Trim(n), 2)
Loop
Text3 = n3 & "~" & m & "之间的素数有" & s & "个:" & vbCrLf & m1
End Sub

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

ysr 发表于 2023-12-20 06:37

23   ×   89   ×   239   ×   113   ×   49   ×   199   ×   127   ×   161   ×   73   ×   463 =372,543,329,524,168,337,087

11   ×   31   ×   59   ×   19   ×   55   ×   89   ×   71   ×   109   ×   155   ×   79   ×   179 =31,740,177,770,736,792,775

ysr 发表于 2023-12-23 10:03

12345679819~12345680819之间的素数有39个:(用时10.59375秒)
12345679823123456798671234567987712345679889123456799031234567993312345679937123456799431234567998112345680003
12345680023123456800291234568006912345680089123456800991234568015312345680159123456801831234568021312345680267
12345680323123456803411234568036312345680387123456804111234568045312345680471123456805491234568057312345680587
123456806031234568062312345680671123456806891234568069312345680707123456807471234568080712345680819

ysr 发表于 2023-12-26 22:41

设M的粗化试除因子是p,商是q,求解方程:(p+2F)(q-4BF)=M,即8BF^2-(2q-4Bp)F-pq+M=0,
B=x1/n1,x1=[(q-p)/4],n1=。
求:粗化修正值F=?2n2+1=p+2F
细化修正值H=x1-FB-(M/(2n2+1)-(2n2+1))/4
新商=M-pq+Hp
新因子=M/新商

ysr 发表于 2023-12-26 23:03

Private Sub Command1_Click()
Dim p, q
m = Val(Text1)
p = Val(Text2)
q = m / p
q = Int(q)
X1 = (q - p) / 4
X1 = Int(X1)
n1 = p / 2
n1 = Int(n1)
b = X1 / n1
a = 8 * b
b1 = 4 * b * p - 2 * q
c = m - p * q
f = ((b1 ^ 2 - 4 * a * c) ^ (1 / 2) - b1) / (2 * a)
p1 = p + 2 * f
h = X1 - f * b - (m / p1 - p1) / 4
q1 = m - p * q + h * p
p2 = m / q1

Text3 = p2

End Sub

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

End Sub

ysr 发表于 2023-12-27 00:28

Private Sub Command1_Click()
Dim p, q
m = Val(Text1)
p = Val(Text2)
q = m / p
q = Int(q)
X1 = (q - p) / 4
X1 = Int(X1)
n1 = p / 2
n1 = Int(n1)
b = X1 / n1
a = 8 * b
b1 = 4 * b * p - 2 * q
c = m - p * q
f = ((b1 ^ 2 - 4 * a * c) ^ (1 / 2) - b1) / (2 * a)
f = Int(f)
p1 = p + 2 * f
p1 = Int(p1)
q2 = m / p1
h = Val(X1 - f * b - (m / p1 - p1) / 4)
h = Int(h)
p3 = Val(m / (q2 + h * 1.8084))


Text3 = p3

End Sub

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

End Sub

ysr 发表于 2023-12-27 13:16

Private Sub Command1_Click()
Dim p, q
m = Val(Text1)
d = m / 4
d = Int(d)
p = d / Int(Sqr(m))
p = Int(p) + 1
q = m / p
q = Int(q)
X1 = (q - p) / 4
X1 = Int(X1)
n1 = p / 2
n1 = Int(n1)
b = Val(X1 / n1)
a = 8 * b
b1 = 4 * b * p - 2 * q
c = m - p * q
f = ((b1 ^ 2 - 4 * a * c) ^ (1 / 2) - b1) / (2 * a)
f = Int(f)
p1 = p + 2 * f
h = X1 - f * b - (m / p1 - p1) / 4
h = Int(h)
q1 = m - p * q + h * p
p2 = m / q1

Text2 = p2

End Sub

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

End Sub

ysr 发表于 2023-12-27 13:18

Private Sub Command1_Click()
Dim p, q
m = Val(Text1)
d = m / 4
d = Int(d)
p = d / Int(Sqr(m))
p = Int(p) + 1
q = m / p
q = Int(q)
X1 = (q - p) / 4
X1 = Int(X1)
n1 = p / 2
n1 = Int(n1)
b = Val(X1 / n1)
a = 8 * b
b1 = 4 * b * p - 2 * q
c = m - p * q
f = ((b1 ^ 2 - 4 * a * c) ^ (1 / 2) - b1) / (2 * a)
f = Int(f)
p1 = p + 2 * f
q2 = m / p1
h = Val(X1 - f * b - (m / p1 - p1) / 4)
h = Int(h)
p3 = Val(m / (q2 + h * 1.8084))


Text2 = p3

End Sub

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

End Sub
页: 1 2 3 [4] 5 6 7 8
查看完整版本: [求助]素性测试