Drucken Sie die Primzahlen von 0 bis 10.000
Im derzeit versuchen, erstellen Sie ein Programm, das druckt die Primzahlen von 0 bis 10.000 über nur für,während und ifs. Ich habe dieses Programm aber nicht läuft
static void Main(string[] args)
{
for (int x = 2; x < 10000; x++)
{
for (int y = 1; y < x; y++)
{
if (x % y != 0)
{
Console.WriteLine(x);
}
}
Console.ReadKey();
}
Ich weiß nicht, wo das problem ist und auch wenn das für den innen-setzt.
Wenn Sie nicht vertraut mit der Verwendung von Breakpoints zu gehen Zeile für Zeile durch ein Debug-build, dann ist dies eine gute Gelegenheit, es auszuprobieren
Ich kann kein boolean-Datentyp.
Sie sind bereits mit 3 Boolesche Werte (in form von Bedingungen) im snippet.
Ich kann kein boolean-Datentyp.
Sie sind bereits mit 3 Boolesche Werte (in form von Bedingungen) im snippet.
InformationsquelleAutor Santiago Mendoza Flores | 2015-03-04
Du musst angemeldet sein, um einen Kommentar abzugeben.
Versuchen Sie diese nicht mit
bool
variable!!!:Überprüfen
Console.ReadKey();
sollte es nach obenfor
- Schleife, können Sie sogar Bedingung für die oberenfor
Beute mit<=
seit10000
müssen auch prüfen, obprime
Zustand.Warum nicht bool? versuchen Sie es mit
Linq
Verlängerung oder andere Lösung dann, in diesem Fall nur die Verwendung von flag-variable arbeiten.Es ist für eine Hausaufgabe und die Herausforderung ist es, ohne Verwendung von bool.
Check Antwort ohne Verwendung von bool-Variablen. Ref sanfoundry.com/csharp-program-prime-number-factor
Ich denke, du meintest
if(isPrime != 2)
als Richter für PrimzahlInformationsquelleAutor Ankush Madankar
Unten ist der effizienteste Weg, um Druck Primzahlen zwischen 0 und 10000
InformationsquelleAutor malkam
Gibt es einen Grund, dass Sie die Konsole.ReadKey(); innerhalb der Schleife?
Sollten Sie setzen, dass aus der Schleife, es sei denn, drücken Sie die Taste während der loop.
Und wahrscheinlich, dass code ist nur print-Menge von x an.
Sie sollten, um es zu beheben.
InformationsquelleAutor Seung Hyun Ra
Das erste problem ist, dass
x % 1
wird immer null sein, zumindest für nicht-null -x
. Sie brauchen, um den test zu starten (innere) Schleife an einem und, für Effizienz, zu stoppen, wenn Sie überschritten haben, die Quadratwurzel der Zahl selbst, wennn
einen Faktorf
wof > sqrt(n)
würden Sie bereits gefunden haben der Faktorn /f
.Das zweite problem ist, dass Sie schreiben, eine Kandidaten-Nummer jedes mal, wenn der Rest null ist. So, da
15 % 4
ist drei, er wird ausgegeben, trotz der Tatsache, dass fünfzehn ist sehr viel eine nicht-Primzahl. Es wird auch ausgegeben, bei15 % 2
,15 % 4
,15 % 6
,15 % 7
, und so weiter.Den normalen (naiven) Algorithmus für prime-Tests:
InformationsquelleAutor paxdiablo
Hier ist einfache Logik zu Drucken Prime Nicht für jede Obere Grenze.
Input : 10-Ausgang : 2 , 3 , 5 ,7
InformationsquelleAutor Purushoth
Hier ist mein code, wo Sie können erstellen und drucken Sie die Primzahlen zwischen zwei zahlen (zwischen string_starting_number und string_last_number). Den niedrigsten Wert für die string_starting_number ist 0 und der höchste mögliche Wert für string_last_number ist dezimal.MaxValue-1=79228162514264337593543950334 und nicht 79228162514264337593543950335, weil der decimal_a++ Befehl innerhalb einer for-Schleife, die zu einem überlauf-Fehler.
Beachten Sie, dass Sie sollten die Eingabe der Werte in string-Typ in string_starting_number und in string_last_number.
InformationsquelleAutor John Kennedy Mendoza Aquino