Mersenne primes: Difference between revisions
Content added Content deleted
m (added a Prime Numbers category and a note about the largest Mersenne Prime know as of December, 2018.) |
|||
Line 1,299: | Line 1,299: | ||
sidef mersenne.sf 12.47s user 0.02s system 99% cpu 12.495 total |
sidef mersenne.sf 12.47s user 0.02s system 99% cpu 12.495 total |
||
</pre> |
</pre> |
||
=={{header|Visual Basic .NET}}== |
|||
{{trans|C#}} |
|||
<lang vbnet>Imports System.Numerics |
|||
Module Module1 |
|||
Function Sqrt(x As BigInteger) As BigInteger |
|||
If x < 0 Then |
|||
Throw New ArgumentException("Negative argument.") |
|||
End If |
|||
If x < 2 Then |
|||
Return x |
|||
End If |
|||
Dim y = x / 2 |
|||
While y > (x / y) |
|||
y = ((x / y) + y) / 2 |
|||
End While |
|||
Return y |
|||
End Function |
|||
Function IsPrime(bi As BigInteger) As Boolean |
|||
If bi < 2 Then |
|||
Return False |
|||
End If |
|||
If bi Mod 2 = 0 Then |
|||
Return bi = 2 |
|||
End If |
|||
If bi Mod 3 = 0 Then |
|||
Return bi = 3 |
|||
End If |
|||
If bi Mod 5 = 0 Then |
|||
Return bi = 5 |
|||
End If |
|||
If bi Mod 7 = 0 Then |
|||
Return bi = 7 |
|||
End If |
|||
If bi Mod 11 = 0 Then |
|||
Return bi = 11 |
|||
End If |
|||
If bi Mod 13 = 0 Then |
|||
Return bi = 13 |
|||
End If |
|||
If bi Mod 17 = 0 Then |
|||
Return bi = 17 |
|||
End If |
|||
If bi Mod 19 = 0 Then |
|||
Return bi = 19 |
|||
End If |
|||
Dim limit = Sqrt(bi) |
|||
Dim test As BigInteger = 23 |
|||
While test < limit |
|||
If bi Mod test = 0 Then |
|||
Return False |
|||
End If |
|||
test += 2 |
|||
If bi Mod test = 0 Then |
|||
Return False |
|||
End If |
|||
test += 4 |
|||
End While |
|||
Return True |
|||
End Function |
|||
Sub Main() |
|||
Const MAX = 9 |
|||
Dim pow = 2 |
|||
Dim count = 0 |
|||
While True |
|||
If IsPrime(pow) Then |
|||
Dim p = BigInteger.Pow(2, pow) - 1 |
|||
If IsPrime(p) Then |
|||
Console.WriteLine("2 ^ {0} - 1", pow) |
|||
count += 1 |
|||
If count >= MAX Then |
|||
Exit While |
|||
End If |
|||
End If |
|||
End If |
|||
pow += 1 |
|||
End While |
|||
End Sub |
|||
End Module</lang> |
|||
{{out}} |
|||
<pre>2 ^ 2 - 1 |
|||
2 ^ 3 - 1 |
|||
2 ^ 5 - 1 |
|||
2 ^ 7 - 1 |
|||
2 ^ 13 - 1 |
|||
2 ^ 17 - 1 |
|||
2 ^ 19 - 1 |
|||
2 ^ 31 - 1 |
|||
2 ^ 61 - 1</pre> |
|||
=={{header|Wren}}== |
=={{header|Wren}}== |