数学中国

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

几个vb小程序

[复制链接]
 楼主| 发表于 2023-2-22 13:42 | 显示全部楼层
本帖最后由 ysr 于 2023-2-22 05:44 编辑

Public Function tuzis(sa As String) As String 'jiafa
Dim A, B, c
A = Val(sa)
B = 1
B1 = 0
b2 = 1
b3 = 0
Do While B <= A
B1 = b2

s1 = s1 & "/" & Trim(b3)

b2 = b3
b3 = MPC1(Trim(B1), Trim(b2))


B = Val(B + 1)

Loop
tuzis = s1

End Function

Private Sub Command1_Click()
Dim A, B, ak()
A = Val(Text1)
B = tuzis(Val(A))
B1 = ksm2(Val(664))
s105 = Split(B, "/")
   j1 = UBound(s105)
    For k = 1 To j1
      n1 = n1 + 1
       ReDim Preserve ak(1 To n1)
      ak(n1) = s105(n1)
    Next
  For I = 15 To j1 - 3
  A = ak(I)
   B = ak(I + 1)
   c = ak(I + 2)
x = MPC1(MPC1(MbC(Trim(A), Trim(B)), Trim(c)), Trim(B1))
  Y = MPC1(MPC1(MbC(Trim(c), Trim(B)), Trim(A)), Trim(B1))
   z = MPC1(MPC1(MbC(Trim(A), Trim(c)), Trim(B)), Trim(B1))
   
  If InStr(fenjieyinzi0(Trim(x)), "*") = 0 Then
  s = s + 1
  s1 = s1 & "/" & s & " /" & x & vbCrLf
  ElseIf InStr(fenjieyinzi0(Trim(Y)), "*") = 0 Then
  s = s + 1
  s1 = s1 & "/" & s & " /" & Y & vbCrLf
  ElseIf InStr(fenjieyinzi0(Trim(z)), "*") = 0 Then
  s = s + 1
  s1 = s1 & "/" & s & " /" & z & vbCrLf
  Else
  s = s
  End If

  Next
   

Text2 = s1

End Sub

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

End Sub
回复 支持 反对

使用道具 举报

 楼主| 发表于 2023-2-23 05:39 | 显示全部楼层
本帖最后由 ysr 于 2023-2-22 22:27 编辑

/1 /76545051729020975577310162521900618820659871603466655644272117978380005723696097587725184512638784526308634214455061267843403507870735540391292521535824647434568377082591826884769598224146796862139607
兔子数列某3项由蔡氏法构成的数45771991(前面的1是序号)加上个大偶数形成的大素数,大约200位
回复 支持 反对

使用道具 举报

 楼主| 发表于 2023-2-23 05:48 | 显示全部楼层
Public Function tuzis(sa As String) As String 'tuzi shulie
Dim A, B, c
A = Val(sa)
B = 1
B1 = 0
b2 = 1
b3 = 0
Do While B <= A
B1 = b2

s1 = s1 & "/" & Trim(b3)

b2 = b3
b3 = MPC1(Trim(B1), Trim(b2))


B = Val(B + 1)

Loop
tuzis = s1

End Function

Private Sub Command1_Click()
Dim A, B, ak()
A = Val(Text1)
B = tuzis(Val(A))
B1 = ksm2(Val(664))
s105 = Split(B, "/")
   j1 = UBound(s105)
    For k = 1 To j1
      n1 = n1 + 1
       ReDim Preserve ak(1 To n1)
      ak(n1) = s105(n1)
    Next
  For I = 18 To j1 - 3
  A = ak(I)
   B = ak(I + 1)
   c = ak(I + 2)
x = MPC1(MPC1(MbC(Trim(A), Trim(B)), Trim(c)), Trim(B1))
  Y = MPC1(MPC1(MbC(Trim(c), Trim(B)), Trim(A)), Trim(B1))
   z = MPC1(MPC1(MbC(Trim(A), Trim(c)), Trim(B)), Trim(B1))
   
  If InStr(fenjieyinzi0(Trim(x)), "*") = 0 Then
  s = s + 1
  s1 = s1 & "/" & s & " /" & x & vbCrLf
  ElseIf InStr(fenjieyinzi0(Trim(Y)), "*") = 0 Then
  s = s + 1
  s1 = s1 & "/" & s & " /" & Y & vbCrLf
  ElseIf InStr(fenjieyinzi0(Trim(z)), "*") = 0 Then
  s = s + 1
  s1 = s1 & "/" & s & " /" & z & vbCrLf
  Else
  s = s
  End If

  Next
   
If s > 0 Then
Text2 = s1
Else
Text2 = "wu  jie"
End If
End Sub

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

End Sub

Private Function ksm2(sa As String) As String '2的快速幂程序
Dim A, B
A = Val(2): B = sa
If B = 1 Then
ksm2 = A
ElseIf B = 0 Then
ksm2 = 1
Else
a1 = A
Do While B > 1
s = Int(Log(B) / Log(2))
s1 = 0
Do While s1 < s
A = MbC(Trim(A), Trim(A))
s1 = s1 + 1
Loop
a2 = A
B = B - 2 ^ s
A = a1
If s2 > 0 Then
a3 = MbC(Trim(a3), Trim(a2))
Else
a3 = a2
End If
s2 = s2 + 1
Loop
If B = 1 Then
ksm2 = MbC(Trim(a3), Trim(a1))
Else
ksm2 = a3
End If
s3 = Len(ksm2)
ksm2 = ksm2
End If


End Function
回复 支持 反对

使用道具 举报

 楼主| 发表于 2023-2-23 05:53 | 显示全部楼层
2^664=有200位,用时0秒76545051729020975577310162521900618820659871603466655644272117978380005723696097587725184512638784526308634214455061267843403507870735540391292521535824647434568377082591826884769598224146796816367616
回复 支持 反对

使用道具 举报

 楼主| 发表于 2023-2-23 06:02 | 显示全部楼层
76545051729020975577310162521900618820659871603466655644272117978380005723696097587725184512638784526308634214455061267843403507870735540391292521535824647434568377082591826884769598224146796862139607-  76545051729020975577310162521900618820659871603466655644272117978380005723696097587725184512638784526308634214455061267843403507870735540391292521535824647434568377082591826884769598224146796816367616

=45771991
回复 支持 反对

使用道具 举报

 楼主| 发表于 2023-2-23 06:59 | 显示全部楼层
45771991=4729*9679不是素数,而是个合数。
45771991~45772091之间的素数有8个:(用时1.757813E-02秒)
45772003  45772009  45772033  45772037  45772039  45772057  45772061  45772087  
其中有一对孪生素数就是45772037  45772039
回复 支持 反对

使用道具 举报

 楼主| 发表于 2023-2-23 11:40 | 显示全部楼层
本帖最后由 ysr 于 2023-2-24 10:16 编辑

Public Function tuzis(sa As String) As String 'tuzi shulie
Dim A, B, c
A = Val(sa)
B = 1
B1 = 0
b2 = 1
b3 = 0
Do While B <= A
B1 = b2

s1 = s1 & "/" & Trim(b3)

b2 = b3
b3 = MPC1(Trim(B1), Trim(b2))


B = Val(B + 1)

Loop
tuzis = s1

End Function

Private Sub Command1_Click()
Dim A, B, ak()
A = Val(Text1)
B = tuzis(Val(A))
B1 = ksm2(Val(664))
s105 = Split(B, "/")
   j1 = UBound(s105)
    For k = 1 To j1
      n1 = n1 + 1
       ReDim Preserve ak(1 To n1)
      ak(n1) = s105(n1)
    Next
  For I = 18 To j1 - 3
  A = ak(I)
   B = ak(I + 1)
   c = ak(I + 2)
x = MPC1(MPC1(MbC(Trim(A), Trim(B)), Trim(c)), Trim(B1))
  Y = MPC1(MPC1(MbC(Trim(c), Trim(B)), Trim(A)), Trim(B1))
   z = MPC1(MPC1(MbC(Trim(A), Trim(c)), Trim(B)), Trim(B1))
   X1 = MPC1(Trim(x), 2)
  Y1 = MPC1(Trim(Y), 2)
  z1 = MPC1(Trim(z), 2)
   Do While Val(js) <= 10
   js = Val(js + 1)
   If zhengchuqyushu(MCC(Trim(x), 3)) > 1 Or zhengchuqyushu(MCC(Trim(Y), 3)) > 1 Or zhengchuqyushu(MCC(Trim(z), 3)) > 1 Then
  If nStr(fenjieyinzi0(Trim(x)), "*") = 0 And InStr(fenjieyinzi0(Trim(X1)), "*") = 0 Then
  s = s + 1
  s1 = s1 & "/" & s & " /" & x & "/" & X1 & vbCrLf
  ElseIf InStr(fenjieyinzi0(Trim(Y)), "*") = 0 And InStr(fenjieyinzi0(Trim(Y1)), "*") = 0 Then
  s = s + 1
  s1 = s1 & "/" & s & " /" & Y & "/" & Y1 & vbCrLf
  ElseIf InStr(fenjieyinzi0(Trim(z)), "*") = 0 And InStr(fenjieyinzi0(Trim(z1)), "*") = 0 Then
  s = s + 1
  s1 = s1 & "/" & s & " /" & z & "/" & z1 & vbCrLf
  Else
  s = s
  End If
  End If
  x = MPC1(Trim(x), 2)
  Y = MPC1(Trim(Y), 2)
  z = MPC1(Trim(z), 2)
  X1 = MPC1(Trim(x), 2)
  Y1 = MPC1(Trim(Y), 2)
  z1 = MPC1(Trim(z), 2)
Loop
  Next
  
If s > 0 Then
Text2 = s1
Else
Text2 = "wu  jie"
End If
End Sub

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

End Sub

Private Function ksm2(sa As String) As String '2的快速幂程序
Dim A, B
A = Val(2): B = sa
If B = 1 Then
ksm2 = A
ElseIf B = 0 Then
ksm2 = 1
Else
a1 = A
Do While B > 1
s = Int(Log(B) / Log(2))
s1 = 0
Do While s1 < s
A = MbC(Trim(A), Trim(A))
s1 = s1 + 1
Loop
a2 = A
B = B - 2 ^ s
A = a1
If s2 > 0 Then
a3 = MbC(Trim(a3), Trim(a2))
Else
a3 = a2
End If
s2 = s2 + 1
Loop
If B = 1 Then
ksm2 = MbC(Trim(a3), Trim(a1))
Else
ksm2 = a3
End If
s3 = Len(ksm2)
ksm2 = ksm2
End If


End Function
回复 支持 反对

使用道具 举报

 楼主| 发表于 2023-2-23 11:47 | 显示全部楼层
1152921504617652277是素数,1152921504617652279=3*17*41*71*7765820684339
回复 支持 反对

使用道具 举报

 楼主| 发表于 2023-2-24 17:44 | 显示全部楼层
本帖最后由 ysr 于 2023-2-24 12:58 编辑

Public Function tuzis(sa As String) As String 'tuzi shulie
Dim A, B, c
A = Val(sa)
B = 1
B1 = 0
b2 = 1
b3 = 0
Do While B <= A
B1 = b2

s1 = s1 & "/" & Trim(b3)

b2 = b3
b3 = MPC1(Trim(B1), Trim(b2))


B = Val(B + 1)

Loop
tuzis = s1

End Function

Private Sub Command1_Click()
Dim A, B, ak()
A = Val(Text1)
B = tuzis(Val(A))
B1 = ksm2(Val(664))
s105 = Split(B, "/")
   j1 = UBound(s105)
    For k = 1 To j1
      n1 = n1 + 1
       ReDim Preserve ak(1 To n1)
      ak(n1) = s105(n1)
    Next
  For I = 18 To j1 - 3
  A = ak(I)
   B = ak(I + 1)
   c = ak(I + 2)
x = MPC1(MPC1(MbC(Trim(A), Trim(B)), Trim(c)), Trim(B1))
  Y = MPC1(MPC1(MbC(Trim(c), Trim(B)), Trim(A)), Trim(B1))
   z = MPC1(MPC1(MbC(Trim(A), Trim(c)), Trim(B)), Trim(B1))
   X1 = MPC1(Trim(x), 2)
  Y1 = MPC1(Trim(Y), 2)
  z1 = MPC1(Trim(z), 2)
   Do While Val(js) <= 6
   js = Val(js + 1)
   If zhengchuqyushu(MCC(Trim(x), 3)) > 1 Then
  If InStr(fenjieyinzi0(Trim(x)), "*") = 0 And InStr(fenjieyinzi0(Trim(X1)), "*") = 0 Then s = s + 1: s1 = s1 & "/" & s & " /" & x & "/" & X1 & vbCrLf
  ElseIf zhengchuqyushu(MCC(Trim(Y), 3)) > 1 Then
  If InStr(fenjieyinzi0(Trim(Y)), "*") = 0 And InStr(fenjieyinzi0(Trim(Y1)), "*") = 0 Then s = s + 1: s1 = s1 & "/" & s & " /" & Y & "/" & Y1 & vbCrLf
  ElseIf zhengchuqyushu(MCC(Trim(z), 3)) > 1 Then
  If InStr(fenjieyinzi0(Trim(z)), "*") = 0 And InStr(fenjieyinzi0(Trim(z1)), "*") = 0 Then s = s + 1: s1 = s1 & "/" & s & " /" & z & "/" & z1 & vbCrLf
  Else
  s = s
  End If
  
  x = MPC1(Trim(x), 2)
  Y = MPC1(Trim(Y), 2)
  z = MPC1(Trim(z), 2)
  X1 = MPC1(Trim(x), 2)
  Y1 = MPC1(Trim(Y), 2)
  z1 = MPC1(Trim(z), 2)
Loop
  Next
  
If s > 0 Then
Text2 = s1
Else
Text2 = "wu  jie"
End If
End Sub

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

End Sub

Private Function ksm2(sa As String) As String '2的快速幂程序
Dim A, B
A = Val(2): B = sa
If B = 1 Then
ksm2 = A
ElseIf B = 0 Then
ksm2 = 1
Else
a1 = A
Do While B > 1
s = Int(Log(B) / Log(2))
s1 = 0
Do While s1 < s
A = MbC(Trim(A), Trim(A))
s1 = s1 + 1
Loop
a2 = A
B = B - 2 ^ s
A = a1
If s2 > 0 Then
a3 = MbC(Trim(a3), Trim(a2))
Else
a3 = a2
End If
s2 = s2 + 1
Loop
If B = 1 Then
ksm2 = MbC(Trim(a3), Trim(a1))
Else
ksm2 = a3
End If
s3 = Len(ksm2)
ksm2 = ksm2
End If


End Function

Private Function qqdl(sa As String) As String

  
  For I = 1 To Len(sa)
    If Not Mid(sa, I, 1) = "0" Then
        Exit For
    End If
Next
strTmp = Mid(sa, I)
  If Len(strTmp) = 0 Then
  qqdl = "0"
  Else
qqdl = strTmp
End If
End Function

Private Function zhengchuqyushu(sa As String) As String
If InStr(sa, "/") = 0 Then
zhengchuqyushu = 0
Else
zhengchuqyushu = Mid(sa, InStr(sa, "/") + 1)
End If


End Function
回复 支持 反对

使用道具 举报

 楼主| 发表于 2023-2-25 19:18 | 显示全部楼层
8的方根为2.82842712474619,方根内有0个,比例(个数/方根)0总数有1个,方根内的:
8=16的方根为4,方根内有1个,比例(个数/方根)0.25总数有2个,方根内的:
16=3+ 13
32的方根为5.65685424949238,方根内有1个,比例(个数/方根)0.176776695296637总数有2个,方根内的:
32=3+ 29
64的方根为8,方根内有2个,比例(个数/方根)0.25总数有5个,方根内的:
64=3+ 61
5+ 59
128的方根为11.3137084989848,方根内有0个,比例(个数/方根)0总数有3个,方根内的:
128=256的方根为16,方根内有1个,比例(个数/方根)0.0625总数有8个,方根内的:
256=5+ 251
512的方根为22.6274169979695,方根内有2个,比例(个数/方根)8.83883476483184E-02总数有11个,方根内的:
512=3+ 509
13+ 499
1024的方根为32,方根内有3个,比例(个数/方根)0.09375总数有22个,方根内的:
1024=3+ 1021
5+ 1019
11+ 1013
2048的方根为45.254833995939,方根内有3个,比例(个数/方根)6.62912607362388E-02总数有25个,方根内的:
2048=19+ 2029
31+ 2017
37+ 2011
4096的方根为64,方根内有5个,比例(个数/方根)0.078125总数有53个,方根内的:
4096=3+ 4093
5+ 4091
17+ 4079
23+ 4073
47+ 4049
8192的方根为90.5096679918781,方根内有2个,比例(个数/方根)2.20970869120796E-02总数有76个,方根内的:
8192=13+ 8179
31+ 8161
16384的方根为128,方根内有3个,比例(个数/方根)0.0234375总数有151个,方根内的:
16384=3+ 16381
23+ 16361
83+ 16301
32768的方根为181.019335983756,方根内有4个,比例(个数/方根)2.20970869120796E-02总数有244个,方根内的:
32768=19+ 32749
61+ 32707
157+ 32611
181+ 32587
65536的方根为256,方根内有5个,比例(个数/方根)0.01953125总数有435个,方根内的:
65536=17+ 65519
89+ 65447
113+ 65423
179+ 65357
227+ 65309
回复 支持 反对

使用道具 举报

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

本版积分规则

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

GMT+8, 2024-5-13 08:58 , Processed in 0.071289 second(s), 15 queries .

Powered by Discuz! X3.4

Copyright © 2001-2020, Tencent Cloud.

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