数学中国

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

数论问题巅峰对决

[复制链接]
发表于 2020-10-5 23:02 | 显示全部楼层
只求一组解就行了,继续下一个n^2 吧,,,
回复 支持 反对

使用道具 举报

 楼主| 发表于 2020-10-5 23:03 | 显示全部楼层
1与200之间有4组连续素数组:
/2/5/7/11和为25
/5/7/11/13和为36
/73/79/83/89和为324
/137/139/149/151和为576
回复 支持 反对

使用道具 举报

 楼主| 发表于 2020-10-5 23:04 | 显示全部楼层
当n=10时:
3000与9000之间有1组连续素数组:
/8839/8849/8861/8863/8867/8887/8893/8923/8929/8933/8941/8951/8963/8969/8971/8999/9001/9007/9011/9013/9029/9041/9043/9049/9059/9067/9091/9103/9109/9127/9133/9137/9151/9157/9161/9173/9181/9187/9199/9203/9209/9221/9227/9239/9241/9257/9277/9281/9283/9293/9311/9319/9323/9337/9341/9343/9349/9371/9377/9391/9397/9403/9413/9419/9421/9431/9433/9437/9439/9461/9463/9467/9473/9479/9491/9497/9511/9521/9533/9539/9547/9551/9587/9601/9613/9619/9623/9629/9631/9643/9649/9661/9677/9679/9689/9697/9719/9721/9733/9739和为929296
回复 支持 反对

使用道具 举报

发表于 2020-10-5 23:04 | 显示全部楼层
/2/5/7/11 不是连续素数哦,
回复 支持 反对

使用道具 举报

 楼主| 发表于 2020-10-5 23:08 | 显示全部楼层
当n=4时:
1与1000之间有1组连续素数组:
/397/401/409/419/421/431/433/439/443/449/457/461/463/467/479/487和为7056.

程序基本正常了,不容易找到数组。
回复 支持 反对

使用道具 举报

 楼主| 发表于 2020-10-5 23:09 | 显示全部楼层
本帖最后由 ysr 于 2020-10-5 15:40 编辑

代码如下:
只发主程序

Private Sub Command1_Click()
Dim a, b
a = Val(Text1)
a1 = a
q = Val(Text2)
m = Val(Text3)
a2 = a1

Do While a2 <= q
c1 = fenjieyinzi0(Val(a2))
Do While InStr(c1, "*") <> 0
a2 = a2 + 1
c1 = fenjieyinzi0(Val(a2))
Loop

a = a2
s = 0
m1 = ""
Do While s < m ^ 2
If a <= 2 Then
a = 2
ElseIf Right(a, 1) Mod 2 = 0 Then
a = a - 1
Else
a = a
End If
c = fenjieyinzi0(Val(a))

If InStr(c, "*") = 0 Then
s = s + 1

m2 = Val(m2) + Val(a)
m1 = m1 & "/" & a
Else
s = s
End If
a = a + 2
Loop
m3 = MBBC(Val(m2))
If InStr(m3, "/") = 0 Then
Text4 = Text4 & "/" & a2 & "/" & a - 2 & "/" & m2 & vbCrLf
m4 = m4 & m1 & "和为" & m2 & vbCrLf
s1 = s1 + 1
Else
Text4 = Text4
End If
If Right(a2, 1) Mod 2 = 0 Then
a2 = a2 + 1
Else
a2 = a2 + 2
End If
m2 = 0
Loop

Combo1 = a1 & "与" & q & "之间有" & s1 & "组连续素数组:" & vbCrLf & m4
s103 = DeleteSpace1(Text4)
s103 = Mid(s103, 2)
Dim i As Integer
Dim ak(), s105, cr(), f
Set f = CreateObject("Scripting.Dictionary")
s105 = Split(s103, "/")
   j1 = UBound(s105)
   Print j1
   For k = 1 To j1
      n1 = n1 + 1
       ReDim Preserve ak(1 To n1)
      ak(n1) = s105(n1)
    Next
    Print ak(1)
     n = 0
        For k = 1 To j1
           For i = 1 To j1
             n = n + 1
             ReDim Preserve cr(1 To n)
            m = Val(ak(k)) + Val(ak(i))
            f(m) = ""
      Next
    Next
      n = 0
      m = f.Keys
      For i = 0 To f.Count - 1
          ReDim Preserve cr(1 To i + 1)
          cr(i + 1) = m(i)
      Next
     For i = 1 To UBound(cr) - 1
        For j = i + 1 To UBound(cr)
            If cr(i) > cr(j) Then
                temp = cr(j)
                cr(j) = cr(i)
                cr(i) = temp  'c数组是排序好的
            End If
        Next j
        
       ' If i Mod 20 = 0 Then
       ' s104 = s104 & temp & "/" & vbCrLf
       ' Else
       ' s104 = s104 & temp & "/"
       ' End If
    Next i
   
      For i = 1 To UBound(cr)
        If i Mod 20 = 0 Then
          s104 = s104 & cr(i) & "/" & vbCrLf
        Else
          s104 = s104 & cr(i) & "/"
        End If
     Next
         Print temp
         MsgBox "ok"
     MsgBox s104  '显示数组
Text5 = s104
End Sub

Private Sub Command2_Click()
Text1 = ""
Text2 = ""
Text3 = ""
Text4 = ""
Combo1 = ""
Form1.Cls
End Sub
回复 支持 反对

使用道具 举报

发表于 2020-10-5 23:11 | 显示全部楼层
容易找到的,不是难题!
回复 支持 反对

使用道具 举报

 楼主| 发表于 2020-10-5 23:14 | 显示全部楼层
当n=11时:
1与1000之间有1组连续素数组:
/61/67/71/73/79/83/89/97/101/103/107/109/113/127/131/137/139/149/151/157/163/167/173/179/181/191/193/197/199/211/223/227/229/233/239/241/251/257/263/269/271/277/281/283/293/307/311/313/317/331/337/347/349/353/359/367/373/379/383/389/397/401/409/419/421/431/433/439/443/449/457/461/463/467/479/487/491/499/503/509/521/523/541/547/557/563/569/571/577/587/593/599/601/607/613/617/619/631/641/643/647/653/659/661/673/677/683/691/701/709/719/727/733/739/743/751/757/761/769/773/787和为48841
回复 支持 反对

使用道具 举报

 楼主| 发表于 2020-10-5 23:30 | 显示全部楼层
“/2/5/7/11 不是连续素数哦,”

程序还是有问题,再修改一下吧。
回复 支持 反对

使用道具 举报

 楼主| 发表于 2020-10-5 23:36 | 显示全部楼层
当n=2时:
1与100之间有2组连续素数组:
/5/7/11/13和为36
/73/79/83/89和为324
这回可能对了。
1与200之间有3组连续素数组:
/5/7/11/13和为36
/73/79/83/89和为324
/137/139/149/151和为576

回复 支持 反对

使用道具 举报

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

本版积分规则

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

GMT+8, 2024-10-6 09:22 , Processed in 0.078125 second(s), 15 queries .

Powered by Discuz! X3.4

Copyright © 2001-2020, Tencent Cloud.

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