vb.net平方根 vb中的平方根函数

VB.NET为用户提供了Math.Sqrt函数用于计算平方根值,但被开方值若为负数则无法得出正确的结果(如,-4的平

问题不是很简单吗?

成都创新互联是一家专注于成都做网站、网站设计与策划设计,霞山网站建设哪家好?成都创新互联做网站,专注于网站建设10余年,网设计领域的专业建站公司;建站业务涵盖:霞山等地区。霞山做网站价格咨询:18982081108

判断输入的数,大于等于零,则直接开方;小于零则取绝对值开方再加上字符"i",代码我就不写了.

编写程序求第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.net的开方运算

VB的运算顺序是:先乘除、后加减,有括号的先算括号内,有负号的先算负号。

请你比较一下这个运算中x和y的值:

Dim n As Single = 4

Dim x As Single

Dim y As Single

x = n + 1

x = x / n

x = x - 1

x = Math.Sqrt(x)

y = Math.Sqrt((n + 1) / n - 1)

这样就会发现,你的代码中括号的位置错了。

正确的应该是: Math.Sqrt((n + 1) / n - 1)


网页标题:vb.net平方根 vb中的平方根函数
转载注明:http://myzitong.com/article/hpheph.html