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