vb.net求素数 vb求素数k在m到n

显示100以内所有素数 VB.net语言

‘这个是可以选择范围的查找

目前创新互联公司已为上千家的企业提供了网站建设、域名、虚拟空间、网站托管运营、企业网站设计、洛南网站维护等服务,公司将坚持客户导向、应用为本的策略,正道将秉承"和谐、参与、激情"的文化,与客户和合作伙伴齐心协力一起成长,共同发展。

Public Class Form1

'一个大于1的自然数,除了1和它本身外,不能被整除以其他自然数(质数),换句话说就是该数除了1和它本身以外不再有其他的因数

' 章鱼哥 3107073263

Private Sub Button1_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles Button1.Click

Dim PD As Boolean = True

TextBox1.Clear() '首先清空文本框,这里面将放置符合条件的素数

If NumericUpDown1.Value  NumericUpDown2.Value Then '从小到大

For i = NumericUpDown1.Value To NumericUpDown2.Value '循坏判断所有数

For j = 2 To i - 1 '内循环是除了1和它本身的

If i Mod j = 0 Then '判断是否能被除了1和自身以为的 比自身小的数整除

PD = False '如果能被整除,将PD 设置为False

Exit For '退出里层For 循环

Else

PD = True

End If

Next

If PD Then '如果PD为True ,则为素数

TextBox1.Text = i  "  "

End If

Next

End If

End Sub

End Class

vb.net利用doloop until 计算从1开始的素数之和直到和不大于989为止

Module Module1

Sub Main()

Dim sum As Integer = 0

Dim Bound As Integer = 989

Dim num As Integer = 0

Dim cprime As Integer = 0

Do

num += 1

If IsPrame(num) Then

sum += num

cprime = num

End If

Loop Until sum  Bound

Console.WriteLine(sum - cprime)

Console.ReadKey()

End Sub

'判断一个数是不是素数

Public Function IsPrame(ByVal num As Integer) As Boolean

If num = 1 Then Return False '素数的定义是大于1

For i = 2 To CType(Int(Math.Sqrt(num)), Integer)

If num Mod i = 0 Then Return False

Next

Return True

End Function

End Module

编写程序求第21个素数 VB

以下是VB.net自己编的输出N-M范围所有质数的函数,效率很高,1-1000000不到1秒。

VB6.0也可以使用,1.把#Region和括号内的语句都删除

2.把Microsoft.VisualBasic.Right改为Right

3.把Math.Log改为Log

#Region "■ 选质数 | ListPrime"

''' summary

''' 返回整数数组,表示指定自然数区间内的所有质数。

''' /summary

''' param name="头自然数"可选,默认值为1。[Integer类],区间起始的自然数。/param

''' param name="尾自然数"可选,默认值为2。[Integer类],区间结束的自然数,必须大于头自然数。/param

Public Function 选质数(Optional ByVal 头自然数 As Integer = 1, Optional ByVal 尾自然数 As Integer = 2) As Integer()

Dim 质数估计数量 As Integer = Int(尾自然数 * 1.2 / Math.Log(尾自然数))

Dim 质数集合(质数估计数量) As Integer

Dim 序号 As Integer = 0 '已找到质数的个数

Dim 测试数 As Integer

Dim 平方根 As Integer

Dim 测试数增量 As Integer = 4

Dim 尾数 As String

If 尾自然数 头自然数 Then Return Nothing

If 头自然数 6 Then '6以内的质数直接给出

If 头自然数 = 2 Then 质数集合(序号) = 2 : 序号 += 1

If 头自然数 = 3 Then 质数集合(序号) = 3 : 序号 += 1

If 头自然数 = 5 Then 质数集合(序号) = 5 : 序号 += 1

测试数 = 7

Else

测试数 = 头自然数

End If

Do Until 测试数 = 尾自然数

尾数 = Microsoft.VisualBasic.Right(CStr(测试数), 1)

If 尾数 = "5" Then GoTo 跳过 '尾数为5的必然是合数

平方根 = Int(测试数 ^ 0.5)

If 平方根 = 3 Then

For i As Integer = 3 To 平方根 Step 2

If 测试数 Mod i = 0 Then GoTo 跳过

Next

End If

成立:

质数集合(序号) = 测试数

序号 += 1

跳过:

测试数 += 测试数增量

测试数增量 = 6 - 测试数增量 '测试数增量在4和2间变化,只测试6n+1和6n+5

Loop

'按实际找到的质数个数重定义集合

ReDim Preserve 质数集合(序号 - 1)

Return 质数集合

End Function

#End Region

VB中 求素数

发你邮箱了~查收吧

Dim a(100) As Integer, b()

Private Sub Command1_Click()

For I = 1 To 100

a(I) = Int(Rnd * 1000)

Print a(I);

If I Mod 10 = 0 Then Print

Next

Call xx

Print "素数:"

For I = 1 To UBound(b)

Print b(I);

If I Mod 10 = 0 Then Print

Next

End Sub

Private Sub xx()

Dim I As Integer, N As Integer, j As Integer

For j = 1 To 100

N = a(j)

For I = 2 To N - 1

If N Mod I = 0 Then Exit For

Next

If I = N Then

x = x + 1

ReDim Preserve b(x)

b(x) = a(j)

End If

Next

End Sub


网站标题:vb.net求素数 vb求素数k在m到n
路径分享:http://cdiso.cn/article/dopeecs.html

其他资讯