Codeschnipsel versteheb

Status
Für weitere Antworten geschlossen.

derv1x

Cadet 1st Year
Registriert
Jan. 2017
Beiträge
14
Guten Morgen,
wir haben im Unterricht einen codeschnipsel (C++) bekommen.
Ziel ist es Primzahlen zu finden.
Leider habe ich diesen noch nicht vollständig begriffen und hoffe das Ihr mir weiterhelfen könnt.
Ich weiß das wir die zahlen durch 2 teilen.
Und wenn 0 raus kommt , dann ist es eine oder ?

Viele grüße


#include <iostream>

using namespace std;

int main()
{
int primzahlen[30] = { 0 }; // von 1 bis 100 gibte es 25 Primzahlen
primzahlen[0] = 2;
primzahlen[1] = 3;
primzahlen[2] = 5;
primzahlen[3] = 7;

int index = 3; // index der letzen Primzahl im Array primzahlen
bool primzahl = true;
int i, j;
int anzahlPrimzahlen = 4; // im array primzahlen

// die Primzahlen von 11 bis 100 finden
for (i = 11; i < 101; i = i + 1)
{
primzahl = true;
for (j = 0; j * j < i + 1 && j < index + 1 && primzahl == true; j = j + 1)
{
if (i % primzahlen[j] == 0)
{
primzahl = false;
}
}
if (primzahl == true)
{
index = index + 1;
primzahlen[index] = i;
anzahlPrimzahlen++;
}
}

// die Primzahlen bis 100 ausgeben
cout << "Die Primzahlen bis 100:" << endl;
for (i = 0; i < index + 1; i = i + 1)
{
cout << primzahlen << ", ";
}
cout << endl << endl;
cout << "Von 1 bis 100 gibt es " << anzahlPrimzahlen << " Primzahlen." << endl;
 
Setzt dich doch erstmal "fachlich" damit auseinander, was Primzahlen sind. Zum Beispiel sind alle Zahlen die durch 2 teilbar sind keine Primzahlen ... dies kann man per Modulo 2 mit Restsumme 0 sehr leicht feststellen.
Nimm dir doch mal ein Zettel und ein Stift und schreib die Zahlen von 1 bis 100 auf ... dann gehst du die Zahlen durch und streicht alle nicht Primzahlen durch.
Danach schaust du dir deinen Code nochmal an und versuchst diesen Schritt für Schritt zu verstehen.
 
Eine Primzahl ist eine Zahl die größer als 1 und nur durch 1 und sich selbst ohne Rest teilbar ist. Der Modulo Operator (%) gibt dir den Rest einer Division.
In der geschachtelten for-Schleife wird genau das geprüft - hat eine Zahl bei einer Divsion durch jede andere Zahl bis zu ihrem Wert einen Rest, dann ist es eine Primzahl bzw. wenn es bei einer Division keinen Rest gibt, dann ist sie keine und die innere Schleife wird verlassen.

Den Rest darfst bzw. musst du alleine verstehen https://www.computerbase.de/forum/threads/fragen-hausaufgaben-co.1767679/
 
Status
Für weitere Antworten geschlossen.
Zurück
Oben