Will eine sehr hohe Primzahl (im 10 oder 100 Milliardenbereich) berechnen
Problem mit double
- geschlossen
- C
- 0wN3r
- 1288 Aufrufe 12 Antworten
Diese Seite verwendet Cookies. Durch die Nutzung unserer Seite erklären Sie sich damit einverstanden, dass wir Cookies setzen. Weitere Informationen
-
-
Dazu habe ich einen guten Tipp:
BlueGene ? Wikipedia.
Aber ernsthaft, was ist das Problem?
Es ist einfacher eine Antwort zu schreiben, wenn der Text eine Frage enthält :).
Es macht aber Sinn sich mit etwas ausgefeilteren Algorithmen zu befassen, da bei zunehmender Größe der Primzahl die Laufzeit doch etwas länger wird.
Das Sieb des Eratosthenes ist ein guter Einstieg: de.wikipedia.org/wiki/Sieb_des_Eratosthenes.Dieser Beitrag wurde bereits 1 mal editiert, zuletzt von wasawasa ()
-
Naja, double ist nicht gerade der geeignetste Datentyp fuer Primzahlen.
(% und vllt. ++ bereiten hier wahrscheinlich Probleme.)
Und auch sonst solltest du das z lieber weglassen, i erfuellt bereits den gewuenschten Zweck.
Quellcode
Allerdings faengts wie du siehst bei 10 Millionen an und nicht bei 10 Milliarden, da so eine stupide Iteration, wie wasawasa schon sagte, bei so grossen Zahlen keinen Sinn macht.Wo ist der Discord ServerDieser Beitrag wurde bereits 10 mal editiert, zuletzt von Skyte ()
-
Da irgendwann auch der Datentyp long long begrenzt ist, sollte man an dieser Stelle auch auf geeignete Biblitheken für "unendlich" große Zahlen hinweisen. Beispiele:
Wobei ich nicht genau weiß, inwiefern du an reines C gebunden bist und ob die genannten C++ Libs daher für dich in Frage kommen. In jedem Fall sollten sich aber auch andere Angebote finden, die in normalem C geschrieben sind. -
ja genau, meine frage war eigenlich warum der Datentyp double bei % problemen macht...
Doch eigentlich müsste es doch genauso mit double gehen, oder?
wieso macht das Probleme bei Primzahlen?
danke Skyte, sowas in der art brauch ich!:blink:
und fuer die links
hab da noch ne frage...
ihr werdet ja nicht nur mit c programmieren, aber ich will jetzt erstmal c richtig lernen!
die meisten Schulen verwenden ja das eher veralterte microsoft visual c++6.0
ich hab mir mal das Microsoft Visual C++ 2008 Express Edition geladen, aber weiß jetzt nicht, wie man damit reine c programme erstellt, also konsolenanwendungen und c++ quellcodedateien.:confused:
Wär erfreut mit dem neueren Programm zu arbeiten
mfg -
double Variablen sind Fliesskommazahlen, also sowas wie 2.5.
Der Modulo Operator % funktioniert aber nur mit Ganzzahlen.
In der Schule habt ihr ja auch nicht gerechnet: 2.5 / 2 = 1 Rest 0.5.Wo ist der Discord Server -
ja, schon klar, dummer fehler!
also denkt der compiler es wär ne gleitkommerzahl und deswegen gibt es probleme mit modulo?! -
0wN3r schrieb:
also denkt der compiler es wär ne gleitkommerzahl
Ja selbstverstaendlich denkt er das, du hast es ihm ja selbst gesagt!
double Variablen sind halt Gleitkommazahlen!
Und selbst wenn es gerade einer Ganzzahl entspricht, also z.b.
Dann ist es trotzdem ne Gleitkommazahl.Wo ist der Discord Server -
jep, is klar
mit welchem programm arbeitet ihr?
oder kann man c nur mit visual studio 6.0 programmieren?! -
Nein, jeder aktuelle C++ Compiler beherrscht eigentlich auch normales C. Du kannst also ruhig die 2008er Express-Version verwenden. Für manche Dinge liebe ich aber Visual Studio 6 immer noch, nämlich wenn es darum geht, möglichst kleine und von Zusatzbibliotheken unabhängige, native Windowsprogramme zu erstellen. Für größere Projekte gibt es aber mit den neuen Versionen von Visual Studio weitaus komfortablere Eintwicklungsumgebungen, die man im Allgemeinen auch vorziehen sollte
-
-
Fuer solche Konsolensachen benutze ich einen Texteditor (UltraEdit/Notepad++) und den gcc Compiler ueber Cygwin.
bin nun auf vista umgestiegen und werde auch sowas benutzen, weil mir visual c++ 2008 einfach zu blöd ist
mfg 0wN3r[SIZE="4"]SCHELLNAST[/SIZE] -
Zu viel OT => Closed
Gruß
Broken SwordAuf dem Abstellgleis sah man ihn liegen,
Auf dem Abstellgleis zwischen Schwelle und Gestein,
Auf dem Abstellgleis im strömenden Regen,
Auf dem Abstellgleis allein.
-
Teilen
- Facebook 0
- Twitter 0
- Google Plus 0
- Reddit 0