Heim > Backend-Entwicklung > C++ > Wie kann man effizient bestimmen, ob eine Zahl in C eine Primzahl ist?

Wie kann man effizient bestimmen, ob eine Zahl in C eine Primzahl ist?

Linda Hamilton
Freigeben: 2024-12-28 15:46:16
Original
207 Leute haben es durchsucht

How to Efficiently Determine if a Number is Prime in C?

So bestimmen Sie Primzahlen in C

Die Frage befasst sich mit der Bestimmung, ob eine bestimmte ganze Zahl in C eine Primzahl ist. Die ursprünglich bereitgestellte C#-Lösung war :

static bool IsPrime(int number)
{
    for (int i = 2; i < number; i++)
    {
        if (number % i == 0 && i != number)
            return false;
    }
    return true;
}
Nach dem Login kopieren

Um zu verstehen, wie man dies in C implementiert, lassen Sie uns das aufschlüsseln Algorithmus:

  1. Überprüfen Sie, ob die Zahl negativ, null oder eins ist. Dies sind keine Primzahlen.
  2. Iterieren Sie von 2 bis zur Quadratwurzel der Zahl.
  3. Überprüfen Sie bei jeder Iteration, ob die Zahl durch den aktuellen Wert teilbar ist.
  4. Wenn teilbar, die Zahl ist keine Primzahl.
  5. Wenn die Schleife abgeschlossen wird, ohne einen Teiler zu finden, ist die Zahl teilbar prime.

Wenn wir diesen Algorithmus in C übersetzen, erhalten wir:

int IsPrime(unsigned int number) {
    if (number <= 1) return 0; // zero and one are not prime
    unsigned int i;
    for (i=2; i*i<=number; i++) {
        if (number % i == 0) return 0;
    }
    return 1;
}
Nach dem Login kopieren

Unterschiede zur ursprünglichen C#-Lösung umfassen:

  • bool ist kein C-Datentyp, daher verwenden wir int und geben stattdessen 0/1 zurück.
  • stdbool.h wird nicht als solche angenommen verfügbar, daher deklarieren wir i manuell.
  • Aus Effizienzgründen iteriert die Schleife bis zur Quadratwurzel der Zahl.

Das obige ist der detaillierte Inhalt vonWie kann man effizient bestimmen, ob eine Zahl in C eine Primzahl ist?. Für weitere Informationen folgen Sie bitte anderen verwandten Artikeln auf der PHP chinesischen Website!

Quelle:php.cn
Erklärung dieser Website
Der Inhalt dieses Artikels wird freiwillig von Internetnutzern beigesteuert und das Urheberrecht liegt beim ursprünglichen Autor. Diese Website übernimmt keine entsprechende rechtliche Verantwortung. Wenn Sie Inhalte finden, bei denen der Verdacht eines Plagiats oder einer Rechtsverletzung besteht, wenden Sie sich bitte an admin@php.cn
Neueste Artikel des Autors
Beliebte Tutorials
Mehr>
Neueste Downloads
Mehr>
Web-Effekte
Quellcode der Website
Website-Materialien
Frontend-Vorlage