mehrdeutiger Aufruf einer überladener Funktion
-
ray91 schrieb:
So siehts jetzt aus:
Da schon mehr als einmal auf C&P hingewiesen wurde, gehe ich mal davon aus, dass das ein Trollversuch sein soll.
-
Der Code steht doch da
-
Mein "fertiges" Programm sieht jetzt so aus: (Es ist C&P)
#include "StdAfx.h" #include <iostream> #include <cmath> using namespace std; bool IstPrimzahl(int zahl) { int i; if(zahl<2) return false; if(zahl==3) return true; for(i=3; i<=sqrt(static_cast<double>(zahl)); i+=2) { if ( zahl % i == 0 ) { return false; } } return true; } int main() { int n; cout << "Geben Sie eine Zahl ein:\n"; cin >> n; if(IstPrimzahl(n)) cout << "Primzahl!\n"; else cout << "Keine Primzahl!\n"; system("Pause"); return 0; }Für kleine Zahlen macht es alles richtig.
Wenn ich aber jetzt größere Zahlen benutze, wie zum Beispiel 2^4423-1, sagt mir das Programm immer "keine Primzahl", was wohl an der Größe der Zahl liegt. Welche Library brauche ich denn jetzt für solche großen Zahlen?
Habe mit google nichts gefunden.
Links in anderen Foren sind meistens auf Seiten verlinkt, die nicht mehr existieren..
-
GNU MP, zum Bleistift.
-
2^4423 kannst du mit deinem Algorithmus sowieso vergessen. Da würden alle Computer der Welt zusammen, selbst die, die noch in Zukunft gebaut werden, so lange dran Rechnen, dass man da tatsächlich mal das Wort "ewig" benutzen darf.
Auch wird dir GNU MP da herzlich wenig nutzen. Wieder: Alle Computer der Welt, selbst die, die noch nicht gebaut wurden, zusammen, können diese Zahl nicht genau speichern.Du brauchst einen Primzahltest wie z.B. Miller-Rabin.
-
SeppJ schrieb:
2^4423
[...]
Alle Computer der Welt, selbst die, die noch nicht gebaut wurden, zusammen, können diese Zahl nicht genau speichern.Ich glaube, mein Computer verfügt über mehr als 4423 bit Speicherkapazität...
-
Im Endeffekt läuft das ganze auf den AKS Primzahltest hinaus, aber dort brauch ich auch eine Library für große Zahlen. Diese Zahl habe ich nur mal eingesetzt um zu schauen was passiert, aber es funktionierte ja leider nicht, da mir die library fehlte.
Danke für die Antwort
-
camper schrieb:
Ich glaube, mein Computer verfügt über mehr als 4423 bit Speicherkapazität...
Ups, ja. Ein bisschen verschätzt.

-
SeppJ schrieb:
Ups, ja. Ein bisschen verschätzt.

Nur ganz leicht. Nicht jeder Computer hat so enorm viel Speicher

-
SeppJ schrieb:
Auch wird dir GNU MP da herzlich wenig nutzen.
... 