Jak sprawdzić, czy liczba całkowita jest liczbą pierwszą, czy nie jest?

Sprawdzamy, czy liczba całkowita jest liczbą pierwszą, czy nie jest?

Liczba pierwsza – to taka liczba naturalna, która ma dokładnie dwa dzielniki naturalne: jedynkę i samą siebie.

Użytkownik wprowadza liczbę całkowitą, a metoda powinna wypisać TAK lub NIE w zależności od tego, czy wejściowa liczba całkowita jest liczbą pierwszą, czy nie jest.

Logika polega na znalezieniu liczby całkowitej mniejszej lub równej pierwiastkowi kwadratowemu z wejściowej liczby całkowitej. Jeśli istnieje dzielnik liczby, który jest mniejszy niż pierwiastek kwadratowy z liczby, wówczas będzie dzielnik liczby, który jest większy niż pierwiastek kwadratowy liczby. Dlatego musimy przejść do pierwiastka kwadratowego z liczby.

Rozwiązanie

public static bool FindPrime(int number)
{
   if (number == 1) return false;
   if (number == 2) return true;
   if (number % 2 == 0) return false;

   var squareRoot = (int)Math.Floor(Math.Sqrt(number));

   for (int i = 3; i <= squareRoot; i += 2)
      if (number % i == 0) return false;         

   return true;
}

I sprawdzenie naszego rozwiązania.

static void Main(string[] args)
{
   while (true)
   {
      Console.Write("Podaj liczbe: ");
      int expression = Int32.Parse(Console.ReadLine());

      if (FindPrime(expression))
         Console.WriteLine("TAK");
      else
         Console.WriteLine("NIE");
      
      Console.ReadLine();
      Console.Clear();
   }        
}

I prezentacja wyniku z konsoli.

Dodaj komentarz

Twój adres email nie zostanie opublikowany. Pola, których wypełnienie jest wymagane, są oznaczone symbolem *