Advertisement
Guest User

Untitled

a guest
Dec 18th, 2014
174
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
C 1.16 KB | None | 0 0
  1. /* Zadatak 13:
  2. Napiˇsite program koji uˇcitava prirodni broj n ≥ 2 i provjerava je li broj n prost, koriste´ci slijede´ci (Wilsonov) teorem:
  3. “Prirodni broj n je prost, ako i samo ako je ostatak pri dijeljenju (n − 1)! s n jednak −1”, odnosno, jednak n − 1 (u
  4. standardnom sustavu ostataka modulo n). Program treba ispisati n i odgovaraju´cu poruku.
  5. Uputa: Nemojte izravno raˇcunati (n − 1)! kao broj, ve´c mnoˇzenja radite samo s ostacima modulo n.
  6. Primjer: neka je n = 5, a ostatke faktorijela raˇcunamo, na primjer, od 1 prema n − 1 = 4. Onda je, redom, 1 = 1 mod 5,
  7. 2 · 1 = 2 mod 5, 3 · 2 = 1 mod 5, 4 · 1 = 4 mod 5. Zadnji ostatak je 4 = n − 1, pa je 5 prost broj. */
  8.  
  9. #include <stdio.h>
  10. int prost(int n){
  11.     int i, b= 1,o=1;
  12.     for(i = 1; i < n; i++){
  13.         b = o * i;
  14.         o = b % n;
  15.     }
  16.     if (o == n-1) return 0;
  17.     else return 1;
  18. }
  19.  
  20. int main(void){
  21.     int n;
  22.     printf("unesi n: \n");
  23.     scanf("%d", &n);
  24.     if(n < 2){
  25.         printf("nise unjeli dobar n!\n");
  26.         return 1;
  27.     }
  28.     if(prost(n) == 0) printf("Broj %d je prost.\n", n);
  29.     else printf("Broj %d nije prost.\n", n);
  30.     return 0;
  31. }
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement