下面的代码列出了从1到10的所有质数:
Dim primeN As Integer
Dim primeI As Integer
Dim primeFlag As Boolean
For primeN = 1 To 10
primeFlag = True
For primeI = 2 To primeN / 2
If primeN Mod primeI = 0 Then
primeFlag = False
End If
Next
If primeFlag Then
Console.WriteLine(primeN)
End If
Next
Console.ReadLine()如何更改它,使其读取用户输入,然后检查它是否是质数?
发布于 2014-02-17 18:57:32
创建返回true或false标志的函数。
这是我的模块,它生成随机数,然后检查素数:
Module PrimeNumber
Sub Main()
Dim numbers As New ArrayList
For i As Integer = 1 To 20
numbers.Add(CInt(Math.Ceiling(Rnd() * 1000000)))
Next
For Each int As Integer In numbers
Console.WriteLine("{0} -> {1}", int, PrimeNumberCheck(int))
Next
End Sub
Public Function PrimeNumberCheck(ByVal number As Integer) As Boolean
Dim primeI As Integer
Dim primeFlag As Boolean
primeFlag = True
For primeI = 2 To number / 2
If number Mod primeI = 0 Then
Return False
End If
Next
Return primeFlag
End Function
End Module输出:

发布于 2014-02-17 22:34:55
你就快到了。而不是循环,只需获取用户输入并将其放入该变量即可。然后在最后稍微修改一下你的信息。
代码:
Dim primeN As Integer
Dim primeI As Integer
Dim primeFlag As Boolean
primeN = Int32.Parse(Console.ReadLine())
primeFlag = True
For primeI = 2 To primeN / 2
If primeN Mod primeI = 0 Then
primeFlag = False
End If
Next
If primeFlag Then
Console.WriteLine("Is prime")
Else
Console.WriteLine("Is not prime")
End If
Console.ReadLine()正如其他人所建议的那样,将逻辑放在一个方法中将是一个好主意。
发布于 2017-07-03 14:37:07
这是我检查数字是否是质数的最快的VBA代码。
Sub ISPRIME()
Dim number_to_be_checked As Long
Dim c As Long
Dim b As Long
number_to_be_checked = 2000000000 'input value here
c = Round(Sqr(number_to_be_checked)) + 1
If number_to_be_checked = 1 Then
MsgBox "Not Prime"
Else
For b = 2 To c
If number_to_be_checked Mod b = 0 And c <> b Then
MsgBox "Not Prime. Divisible by " & b
Exit Sub
Else
If b = c Then
MsgBox "Prime"
Exit Sub
End If
End If
Next b
End If
End Subhttps://stackoverflow.com/questions/21826904
复制相似问题