Primzahlenberechnung - runden unterbinden?
-
Hi,
Ich dachte mir zum Spaß, ich könne ja mal ein Programm schreiben, was ein paar Primzahlen berechnet - ist ja eigentlich nichts großes, außer, dass es Zeitaufwendig ist.
Aber nun scheitere ich an dem alt bekannten Problem: dem Runden.
Gibt es irgendeine Möglichkeit irgendwie die Rundung zu unterbinden/verhindern(mein PC muss ja schließlich auch mal irgendwo die komplette Zahl haben um zu wissen wie er runden soll..) oder muss ich mir irgendwelche Funktionen ausdenken, sodass ich das Problem ohne Divisionen/Runden hinbekomme?Danke
-
Tja man nimmt auch keine Fließkommazahltypen für sowas. Denken -> Nimm int oder unsigned.
-
Beim int wird auch gerunden was das Zeug hält...?
Oder du erklärst mir mal wie du das realisieren willst
-
Biest du dumm?
-
Ich weiss nicht, ab wann ist man in deinen Augen dumm?
Also bisher bin ich ganz gut durchs Leben gekommen
-
poste mal bitte wie du dir das bisher gadecht hast.
Die einfachste (IMHO) implementation (naja ohne Performance
) wäre mit (unsigned) int und modulo
-
Also ich wär nun so vorgegangen:
bool bPrim = false; int Primzahl = 2; while(true) { for (int i = 2; i <= Primzahl - 1; i++) { if (int(Primzahl/i) == Primzahl/i) //geht wegen runden schlecht... { bPrim = true; exit; } } if (bPrim == false) std :: cout << Primzahl << ";"; Primzahl++; bPrim = false; }Und mit der 2 am Anfang dürfte auch nicht ganz funktionieren, aber das ist nur ne erste Idee, die ich innerhalb von 5min getippt habe.
-
So Problem hat sich erledigt...