Primzahl
-
Hallo zusammen , ich brauch mal wieder eure Hilfe.
Ich bekomme kein Ergebnis angezeigt, was habe ich verkehrt gemacht?
Schleife oder bool? und schon mal Danke#include <iostream> using namespace std; int main() { int i; i=2; int testZahl; cout << "Bitte gib die Prime test Zahl ein!" << endl; cin >> testZahl; bool ist_eine_Primzahl = true; while(1 < testZahl) { if (testZahl % i== 0) { ist_eine_Primzahl = false; } i++; } if (testZahl) { cout<< endl; cout<< "Es ist eine Prim Zahl"<< endl; } else { cout<< endl; cout<< "Es ist keine Prim Zahl"<< endl; } return 0; }
-
die while-Schleife ist eine Endlosschleife für testZahl > 1
-
juhu123 schrieb:
while(1 < testZahl) // Eins ist vermutlich immer kleiner als deine Testzahl -> Endlosschleife { if (testZahl % i== 0) { ist_eine_Primzahl = false; } i++; }
-
Zeile 19 und Zeile 28, jeweils die Bedingungen sind etwas, naja, ungenau...
-
5 Sek schneller
-
Dein Lörres is bestimmt en Meter lang^^
Immer dran denken, im Internet diskutieren und bei den Paralympics teilnehmen ist dasselbe. Selbst wennde gewinnst, biste immer noch behindert...
[/Sarcasm]
-
int p = 13 ; for ( int i = 2 ; i <= p/2 ; ++i ) if ( p % i == 0 ) { // p nicht prim break ; } // p prim
-
Erklär mal warum, du bist p/2 gehst und nicht bis p oder p/3 oder p/4 oder p/n
-
Skym0sh0 schrieb:
Erklär mal warum, du bist p/2 gehst und nicht bis p oder p/3 oder p/4 oder p/n
Joa, die Standardmethode ist bis zur Wurzel gehen. Und dann nicht Quadratzahlen vergessen.
-
Vielleicht weil zwischen p/3 und p/2 noch ein Teiler von p liegen kann (bin ich mir nicht sicher), zwischen p/2 und p aber nicht. Ist ja auch wurscht, das ist so oder so keine effektive Methode, um eine Zahl auf Primeigenschaft zu testen.