irgendwie bin ich blind. wenn ich eine 310 stellige zahl auf primzahl testen will geht es nicht
309 stellen geht aber noch
fehler :
kann mir jemand n tip geben was da falsch ist bzw was ich sonst machen könnte um richtig große zahlen auf prim zu testen
EDIT : modulo ist double also kann es keine 310 stellen :pinch:
309 stellen geht aber noch
fehler :
mein button1
System.OverflowException wurde nicht behandelt.
Message=Der Wert für ein Double war zu groß oder zu klein.
Source=Microsoft.VisualBasic
VB.NET-Quellcode
- Dim test As String = Fast("1234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890") '310 stellen
VB.NET-Quellcode
- Function Fast(ByVal n As String) As Boolean
- '(c) by http://dotnet-snippets.de/dns/effizientere-primzahlpruefung-grosser-zahlen-SID1373.aspx
- If n Mod 2 = 0 OrElse n Mod 3 = 0 OrElse n Mod 7 = 0 OrElse n Mod 5 = 0 Then Return False
- Dim r As Single = Math.Sqrt(n), f As Short = 11
- If r Mod 1 = 0 Then Return False
- While f <= r
- If n Mod f = 0 OrElse n Mod (f + 2) = 0 Then Return False
- f += 6
- End While
- Return True
- End Function
kann mir jemand n tip geben was da falsch ist bzw was ich sonst machen könnte um richtig große zahlen auf prim zu testen
EDIT : modulo ist double also kann es keine 310 stellen :pinch: