nahm ich einen Blick auf die folgende Frage von Project Euler:Finden Sie die 10001. prime
durch den ersten sechs Primzahlen Auflistung: 2, 3, 5, 7, 11 und 13 können wir, dass der 6. sehen Primzahl ist 13. Was ist die 10 001st Primzahl?
Ich habe versucht, die Quadratwurzel der Zahl zu nehmen und dann alle Primzahlen unter der Quadratwurzel der Zahl zu finden und dann die Zahl durch alle Quadratwurzeln zu teilen und zu sehen, ob jedes Mal 0 übrig ist. Wenn die Zahl nicht durch alle Primzahlen unter ihrer Quadratwurzel teilbar ist, ist sie eine Primzahl. Ich habe das getan, um die Iterationen zu reduzieren, die das Programm machen muss. Hier ist, was ich jetzt habe, ich bin mir nicht sicher, warum es nicht funktioniert. Weiß jemand, was ich falsch gemacht habe?
List<int> primeNumbers = new List<int>();
bool prime = true;
bool MainPrime = true;
int check = 1;
for (long i = 3; i < long.MaxValue; i++)
{
if ((i % 2) != 0)
{
int root = Convert.ToInt32(Math.Sqrt(i));
for (int j = 1; j < root; j++)
{
for (int k = 2; k < j; k++)
{
if ((j% k) == 0)
{
prime = false;
}
}
if (prime)
{
primeNumbers.Add(j);
}
prime = true;
}
}
foreach (var item in primeNumbers)
{
if ((i%item) == 0)
{
MainPrime = false;
}
}
primeNumbers.Clear();
if (MainPrime)
{
check++;
}
if (check == 10001)
{
Console.WriteLine(i);
break;
}
}
Console.ReadKey();
Vielen Dank noch lernen: P. Kannst du mir das => erklären? Ich habe darüber gelesen, dass es ein Lambda-Ausdruck oder etwas ist. Aber ich konnte es aus der Dokumentation nicht ganz verstehen. – Mathijs
@Mathijs Der Operator => trennt die Eingabe und die Ausgabe eines Lambda-Ausdrucks. Hier ist eine Anleitung auf MSDN: https://msdn.microsoft.com/en-us/library/bb397687.aspx – airafr
Also die => hat grundlegend Parameter auf der linken Seite und eine "Methode" auf der rechten Seite? – Mathijs