Einfach 0 gelöst 0% Erfolgsquote

Primzahl-Prüfung

Entscheide, ob eine Zahl eine Primzahl ist.

Das lernst du

  • Teilbarkeit mit dem %-Operator prüfen
  • Bei der Quadratwurzel von n aufhören
  • 0, 1 und 2 als Sonderfälle behandeln

Problem

Eine Primzahl ist größer als 1 und nur durch 1 und sich selbst teilbar. Es genügt, die Teiler bis zur Quadratwurzel von n zu überprüfen.

Implementiere is_prime(n).

Eingabe

n: Die zu prüfende Zahl.

Ausgabe

Gib true zurück, wenn n eine Primzahl ist, andernfalls false.

Einschränkungen

-1.000 ≤ n ≤ 1.000.000.000.000

Beispiele

Beispiel 1
Eingabe:
n = 29

Erwartete Ausgabe:
expected = True
Eingabe:
long long n = 29;

Erwartete Ausgabe:
bool expected = true;
Eingabe:
long n = 29;

Erwartete Ausgabe:
bool expected = true;

Erläuterung

29 hat keine anderen Teiler als 1 und 29.

Beispiel 2
Eingabe:
n = 21

Erwartete Ausgabe:
expected = False
Eingabe:
long long n = 21;

Erwartete Ausgabe:
bool expected = false;
Eingabe:
long n = 21;

Erwartete Ausgabe:
bool expected = false;

Erläuterung

21 = 3 × 7, daher ist sie keine Primzahl.

So gehst du vor

Versuch es zuerst allein und öffne dann einen Hinweis nach dem anderen.

Hinweis 1

Behandle Zahlen unter 2 zuerst; sie können nicht prim sein.

Hinweis 2

Teste mögliche Teiler nur bis zur Quadratwurzel der Zahl.

Hinweis 3

Achte auf gerade Zahlen und doppelte Faktoren, denn ein Teiler reicht, um Primzahl zu widerlegen.

Erwartete Komplexität

Zeit O(sqrt(n)), zusätzlicher Speicher O(1)

Referenzen

Diese Aufgabe wurde für CodeUtility angepasst. Beachte die oben genannten Vorgaben und Einschränkungen.

Von anderen lernen

Community-Lösungen

Noch keine veröffentlichten Lösungen. Löse die Aufgabe und teile als Erster eine Lösung.