Wenn i
Null ist, zum ersten Mal um die Schleife Sie 0 % 0
tun was zu einem Fehler durch Division durch Null führt.
Was Ihre Funktion zu tun versucht, habe ich keine Ahnung. Ich sehe hier nichts, was mit Primzahlen zusammenhängt. Sie finden einfach alle geraden Zahlen kleiner als n
.
Schauen wir uns die if
Test einen Blick:
if ((i % 2 == 0) && (i % i == 0))
Der zweite Teil, i % i == 0
immer so lange wahr sein wird, wie i
nicht 0
ist. Dieser Teil ist also falsch. Und i % 2 == 0
testet einfach, ob i
gerade ist oder nicht.
Was beabsichtigt Ihr Code eigentlich? Versuchen Sie zu testen, ob eine Zahl prim ist oder nicht? Wenn ja, ist der einfachste Ansatz wie folgt aus:
static bool isPrime(int n)
{
Debug.Assert(n>0);
for (int i=2; i<n; i++)
if (n % i == 0) // n is exactly divisible by i, so n is not prime
return false;
return true; // we could not find a factor, so n must be prime
}
Sie aktuelle Code nicht ausgeben kann keine Zahlen, da auf Ihren Anruf Console.WriteLine
ist nicht ganz richtig. Suchen Sie nach:
Console.WriteLine("The prime numbers are: {0}", a);
Der andere Punkt ist, dass Ihre Version des Codes den Primzahltest mit dem I/O-Code gemischt. Wenn Sie alles in einer einzigen großen Routine mischen, ist es für Sie schwieriger, den Code zu verstehen und zu debuggen. Teilen Sie den Primalitätstest in eine separate Funktion auf, wie ich es hier illustriere, und Sie können seine Richtigkeit leichter überprüfen. Sobald Sie wissen, dass es korrekt ist, können Sie es aus Ihrem IO-Code verwenden. Und dann können Sie sich darauf konzentrieren, Ihren IO-Code korrekt zu machen. Welche etwa wie folgt aussehen könnte:
Console.Write("Enter your number: ");
int n = Convert.ToInt32(Console.ReadLine());
Console.WriteLine("The prime numbers are:");
for (int i = 1; i <= n; i++)
if (isPrime(i))
Console.WriteLine(i);
Console.ReadLine();
'i% i' ist immer 0 (für' i> 0'), also ist die letztere Bedingung eine Tautologie. –
Wie groß ist die Wahrscheinlichkeit, dass ein Patient ** [UR-Nummer] (http://www.rch.org.au/rchhis/requests/index.cfm?doc_id=1863) ** zufällig eine Primzahl ist? – sehe
Um die Primzahl zu finden, können Sie das Sieb von Eratosthenes verwenden. –