Primzahlenberechnung
-
Hallo.. ich wollte ein programm schreiben, was mir primzahlen berechnet.. ich habe mir das so überlegt:
n= primzahl die ich prüfen will
i==0
solange i<n mache {
n/i .. wenn das ergebnis.... eine ganze zahl ist , dann schreibe, dass es keine primzahl ist und verlasse die schleife
.. eine fließkommazahl ist , dann erhöhe i um 1}
mein prob ist, wie kann ich C sagen, ob es sich um eine ganze / natürliche zahl handelt? und wie verlasse ich eine while schleife .. mit break geht das ja nur in switch soweit ich weiss ^^
-
1.) Falsches Forum, hier geht es um C#
2.) Ganze Zahlen haben keine Nachkommastellen
3.) while-Schleifen KANN man mit break verlassen (alle Schleifen kann man mit break verlassen), allerdings reicht es wenn man die Bedingung der Schleife geschickt wählt
-
Icke schrieb:
mein prob ist, wie kann ich C sagen, ob es sich um eine ganze / natürliche zahl handelt?
Schau Dir mal den Modulo-operator % an.
-
sry für false chanel ^^.. ja mit dem modulo dachte ich des auch schon.. aba wie mache ich das?
z.B.
9/3 = 3 3mod3=0 also keine primzahl
9/2 = 4,5 4,5 mod 4,5 =0 , keine primzahl, obwohl es mit /2 gar net bewiesen wurde ..oda ich weiss net wie ich das mit mod mache xD
-
Gibt's bei Euch kein Internet ?
-
Hi,
ich hab da mal was vor langer Zeit geschrieben.
Ich weiß noch nicht mal ob das was von der Schule ist, aber egal. :xmas2:
Hoffe mein alter Dozent liest das nicht. Sonst melden.:xmas2:
Ist in C++/CLI, kannst es aber in C# umbauen, sollte ja nicht das Problem sein.Int32 _max=0, _min=0, _primzahl=0, _divisor=0; Int32 _a, _b;//Variablen für die Zwischenspeicherung, wenn erforderlich Boolean _istEinePrimzahl = true; Console::Write("Ab welcher Zahl sollen die Primzahlen ausgegeben werden? "); _min = Convert::ToInt32(Console::ReadLine()); Console::Write("Bis zu welcher Zahl sollen die Primzahlen ausgegeben werden? "); _max = Convert::ToInt32(Console::ReadLine()); if (_min > _max) // Um zu vermeiden das die erste Zahl des Intervalls größer der zweiten. { _a = _min; _b = _max; _min = _b; _max = _a; } if(_min < 1)//Wenn _min kleiner als 1, dann auf 2 setzen { _min = 2; } for (_primzahl=_min; _primzahl <=_max; _primzahl++) { _istEinePrimzahl = true; //Ist die Zahl wirklich eine Primzahl? for (_divisor=2; _istEinePrimzahl && _divisor < _primzahl; _divisor++) { //Restlos teilbar? if (0 == _primzahl % _divisor) { //Wenn die Zahl teilbar ist, ist es keine Primzahl! _istEinePrimzahl = false; } } //Die Zahl ausgeben, wenn es eine Primzahl ist if (_istEinePrimzahl == true) { Console::WriteLine("{0}",_primzahl) ; } }
Gruß
-
Doug_HH schrieb:
Ist in C++/CLI, kannst es aber in C# umbauen, sollte ja nicht das Problem sein.
Doch. Wetten?
cheers, Swordfish