#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; }