我写的10000以内素数题的VB.Net代码
vb吧
全部回复
仅看楼主
level 11
DiverAZAM 楼主
只发送Public Class Form1以内的部分
2020年05月28日 01点05分 1
level 11
DiverAZAM 楼主
Private AllSu(0 To 1228) As Integer
Private Sub Button1_Click(sender As Object, e As EventArgs) Handles Button1.Click
Dim IsUsed(0 To 1228) As Boolean
Dim ASu(0 To 99) As Integer
Dim ASuI As Integer
Dim RndIndex As Integer
Dim ASuJ As Integer
Dim StrA As String
Dim NumAvg As Double
Dim NumMin As Double
For ASuI = 0 To 99
RndIndex = Int(Rnd() * (1229 - ASuI)) + 1
For ASuJ = 0 To 1228
If Not IsUsed(ASuJ) Then
RndIndex = RndIndex - 1
If RndIndex = 0 Then
IsUsed(ASuJ) = True
ASu(ASuI) = AllSu(ASuJ)
NumAvg = NumAvg + ASu(ASuI)
If ASuI > 0 Then StrA = StrA & ","
If ASuI > 0 And ASuI Mod 10 = 0 Then StrA = StrA & vbCrLf
StrA = StrA & ASu(ASuI)
Exit For
End If
End If
Next ASuJ
Next ASuI
NumAvg = NumAvg / 100
StrA = StrA & vbCrLf & "平均值:" & NumAvg & vbCrLf & "最接近数:"
NumMin = Math.Abs(ASu(0) - NumAvg)
For ASuI = 1 To 99
If Math.Abs(ASu(ASuI) - NumAvg) < NumMin Then NumMin = Math.Abs(ASu(ASuI) - NumAvg)
Next ASuI
RndIndex = 1
For ASuI = 0 To 99
If Math.Abs(ASu(ASuI) - NumAvg) = NumMin Then
If RndIndex > 1 Then StrA = StrA & ","
StrA = StrA & ASu(ASuI)
RndIndex = RndIndex + 1
End If
Next ASuI
Label1.Text = StrA
End Sub
2020年05月28日 01点05分 2
这是第一部分代码
2020年05月28日 02点05分
这个都是这个1~10000的素数代码嘛
2020年05月29日 02点05分
level 11
DiverAZAM 楼主
Private Sub Button2_Click(sender As Object, e As EventArgs) Handles Button2.Click
Dim StrB As String
Dim InputA As Integer
Dim InputI As Integer
Dim InputJ As Integer
Dim InputHang As Boolean
Dim InputLie As Integer
Dim MaxLie As Integer
MaxLie = 10
InputA = InputBox("请输入一个4到10000的偶数")
StrB = "偶数" & InputA & "可拆分为:"
For InputI = 0 To 1228
For InputJ = InputI To 1228
If AllSu(InputI) + AllSu(InputJ) = InputA Then
InputLie = InputLie + 1
If InputHang Then
StrB = StrB & ","
If InputLie > MaxLie Then
InputLie = 1
StrB = StrB & vbCrLf
End If
StrB = StrB & AllSu(InputI) & "+" & AllSu(InputJ)
Else
StrB = StrB & vbCrLf & AllSu(InputI) & "+" & AllSu(InputJ)
InputHang = True
End If
End If
Next InputJ
Next InputI
Label1.Text = StrB
End Sub
2020年05月28日 01点05分 3
这是第二部分代码
2020年05月28日 02点05分
level 3
简单的来说,这个贴吧里面,基本上所有大佬的答案,我们基本上都是没有借鉴作用的
2020年05月28日 01点05分 5
没明白,我还要继续发
2020年05月28日 01点05分
不用了吧,谢谢大佬,我们其实不太能看懂,也不会写在作业上的,哈哈哈
2020年05月28日 01点05分
level 3
我们是一个非专业的VB课,就写了十多次课,讲的也比较简单,就基本是hello world开始那种,现在这个作业一下提高了难度(其实对大佬来讲都是垃圾),同学们都遇到了很多困难,就来贴吧问问大佬们
2020年05月28日 01点05分 6
大概率,咱们是一个学校的
2020年05月28日 12点05分
level 3
虽然没什么帮助,但是这几天还是很感谢这个吧里面的大佬
2020年05月28日 01点05分 7
level 3
真的很有心(⑉°з°)-♡
2020年05月28日 01点05分 8
level 11
DiverAZAM 楼主
第三部分先发图片试试
2020年05月28日 01点05分 11
level 11
DiverAZAM 楼主
'第三部分第一小部分代码
Private Sub Form1_Load(sender As Object, e As EventArgs) Handles MyBase.Load
Dim AllSuIndex As Integer
2020年05月28日 02点05分 17
level 11
DiverAZAM 楼主
'第三部分第二小部分代码
Dim AllSuI As Integer
Randomize()
AllSuIndex = 0
AllSu(0) = 2
For AllSuI = 3 To 10000
If IsSu(AllSuI) Then
AllSuIndex = AllSuIndex + 1
AllSu(AllSuIndex) = AllSuI
2020年05月28日 02点05分 21
level 11
DiverAZAM 楼主
'第三部分第三小部分代码
End If
Next AllSuI
End Sub
Private Function IsSu(IsSuX As Integer) As Boolean
Dim IsSuMax As Integer
Dim IsSuI As Integer
IsSu = False
IsSuMax = Int(Math.Sqrt(IsSuX))
For IsSuI = 2 To IsSuMax
If IsSuX Mod IsSuI = 0 Then Exit Function
Next IsSuI
IsSu = True
End Function
2020年05月28日 02点05分 22
level 11
DiverAZAM 楼主
一共三大部分终于发完了,代码分散在五层之中,再加一层是图片
2020年05月28日 02点05分 23
1