Deterministyczny test pierwszości (liczby nieparzyste)

Program sprawdza podzielność danej liczby przez liczby nieparzyste z zakresu: od 3 do pierwiastka z danej liczby.

#include<stdio.h>
#include<math.h>
int main(void)
{
  unsigned long long int x, z, i=3, y=0;
  while(1)
  {
     printf("nnWprowadz liczbę: ");
     scanf(" %lld", &x);

     if (x == 0)
     {
         printf("nDziękujemy za użycie programu!n");
	     break;
     }
     if (x == 1)
     {
         printf("1 nie jest liczbą pierwszą ani złożoną.");
         continue;
     }
     if (x == 2)
     {
         printf("2 jest liczbą pierwszą.");
         continue;
     }
     if (x%2 == 0)
     {
         printf("Liczba %lld jest parzysta.", x);
         continue;
     }
     z = sqrt(x);
     for (i=3; i<=z; i+=2)
     {
         if (x%i == 0)
         {
         y = i;
         break;
         }
     }
     if (y != 0) printf("Liczba %lld nie jest pierwsza, ponieważ dzili się przez %lld.", x, y);
     else printf("Podana liczba jest liczbą pierwszą.");
     y = 0;
  }
  return 0;
}

Dodaj komentarz

Twój adres email nie będzie publikowany.