#include<stdlib.h>
#include<stdio.h>
#include<math.h>
int main( void )
/*
Ten program sprawdzi, czy podana liczba jest pierwsza. Sposób sprawdzania jest następujący.
Najpierw sprawdzxamy, czy liczba jest parzysta. Jeżeli jest, to nie jest pierwsza, i następuje
szybki koniec. Następnie badamy podzielność przez kolejne nieparzyste. Kończymy na liczbie sqrt(n).
Jeżeli do tej pory nie znajdziemy podzielnika, to już nie znajdziemy, prawda?
*/
{
long n; /* To będzie nasza zadana przez użytkownika liczba do sprawdzenia. */
long d=3; /* To będzie pomocnicza zmienna, zawierająca potencjalny dzielnik n. */
printf("Ten program sprawdza, czy podana liczba jest pierwsza\n\n\n");
printf("Proszę podać liczbę naturalną\n\n\n");
scanf("%ld",&n);
printf("Podana liczba: %ld\n\n\n",n);
if (n%2==0)
{
printf("Liczba %ld jest liczbą złożoną: jej dzielnikiem jest %ld\n\n\n",n,2);
return EXIT_SUCCESS;
}
test: if (n%d==0)
{
printf("Liczba %ld jest liczbą złożoną: jej dzielnikiem jest %ld\n\n\n",n,d);
return EXIT_SUCCESS;
}
d+=2;
if (d>sqrt(n))
{
printf("Liczba %ld jest liczbą pierwszą\n\n\n",n);
return EXIT_SUCCESS;
}
goto test;
}