• Blog o informatyce
  • Blog o produktywności
  • Blog o rozwoju osobistym

Test pierwszości napisany w języku ANSI C

zobacz dokument w wersji PDF  

 

Dzisiaj chciałbym przedstawić funkcję sprawdzającą czy dana liczb jest liczbą pierwszą. Algorytm zakodowałem w języku ANSI C:

 

#include <stdio.h>

//Dana liczba
int liczba=19;
int wynik=0;

int is_prime(int liczba)
{
  int i=2;
  while(wynik==0 && i<liczba)
    {
      if ((liczba%i)==0) ++wynik;
      ++i;
    }
    if (wynik==0) return(0);
    else return(1);
}

int main()
  {
  if (is_prime(liczba)==0) printf("liczba %d jest liczbÄ… pierwszÄ…",liczba);
  else printf("liczba %d jest liczbą złożoną",liczba);
  }


  • W aplikacji jest jedna zmienna globalna : liczba oraz dwie zmienne pomocnicze : i oraz wynik . W zmiennej liczba znajduje się sprawdzana liczba - czy jest pierwsza czy złożona.

 

  • W pętli while zmienna liczba jest dzielona przez kolejne liczby naturalne : 2,3,4,...,n/2. Jeżeli któraś z liczb naturalnych daje resztę z dzielenia większą od zera to apikacja wychodzi z pętli while i zwraca wartość 1 - liczba złożona. W przeciwnym przypadku aplikacja przechodzi przez całą pętlę while i zwraca wartość 0 - liczba pierwsza.