010
23.10.2007, 15:03 Uhr
xXx
Devil
|
Hmm ... ok ... also eine Primzahl ist es solange, wie du durch alle Zahlen teilen kannst und das nie genau aufgeht ... das ist dein Ansatz, korrekt?
C++: |
//! enum prim numbers /*! The code enumerates the prim numbers in a specific range \param max_prim The parameter specific the range of numbers */ for (unsigned long num = 3; num <= max_prim; num += 2) { bool prim(true); for (std::size_t prim_check = 1; prim_check < num; prim_check += 2) { // HIER MUSS DU NOCH WAS SCHREIBEN } std::cout << num << " ist " << (prim ? "eine" : "keine") << " Primzahl!" << std::endl; }
|
... also ... 1 und 2 kannst du ja überspringen ... dann geht es mit 3 los. Du kannst immer direkt mit 2 hochzählen, da jede gerade Zahl durch 2 teilbar ist(sodass kein Rest bleibt!). So. Dann musst du ja überprüfen, ob die Zahl nicht doch durch irgendeine Zahl teilbar ist, ohne das ein Rest rauskommt(Zahl != 0, != 1). Dazu gehst du halt alle Zahlen durch ^^ Jetzt ist es nur noch deine Aufgabe, die Abfrage in der Schleife einzubauen, ob die Zahl ohne Rest geteilt werden kann. Wenn es ohne Rest geteillt werden kann, setzt du "prim" auf "false"(0). |