Advertisement
u53r

Verificare che un numero N sia primo

Jan 19th, 2018
157
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
C 1.52 KB | None | 0 0
  1. /*
  2.   19 / 01 / 2018 by u53r
  3.   Verificare che N sia un numero primo.
  4.  
  5.   In pratica, dato un numero N in input, si tenta la divisione di questo per tutti i numeri minori di esso, esclusi 0 e 1 .
  6.   Se non risulta divisibile per nessun numero, allora viene considerato primo .
  7.  
  8. */
  9.  
  10. #include <stdio.h>
  11.  
  12. int main() {
  13.   unsigned int i,x; // Uso "unsigned int" perché un numero primo è sempre un intero positivo
  14.   printf("Inserisci un numero\n");
  15.   scanf("%u", &x);
  16.  
  17.   if(x == 0){ // Controllo che x sia uguale a 0 . In caso affermativo, stampo un avviso e chiudo il programma
  18.     printf("Lo zero non è un numero primo, poichè è divisibile per infiniti numeri, oltra a se stesso\n");
  19.     return 0; // Una volta stampata la scritta, chiudo il programma
  20.   }else if(x == 1){ // Controllo che x sia uguale a 1 . In caso affermativo, stampo un avviso e chiudo il programma
  21.     printf("L'uno non è un numero primo, poiché è divisibile solo per se stesso\n");
  22.     return 0; // Una volta stampata la scritta, chiudo il programma
  23.   }else{
  24.   for(i=x-1;i>1; i--){ // Parto da x-1 e impongo i>1 come condizione per fare in modo di escludere il numero stesso e 1 (dato che ogni numero è divisibile per se stesso e per 1)
  25.     if((x % i) == 0){ // Se il resto della divisione di x / i è uguale a 0, allora x NON è un numero primo
  26.       printf("%u non e' un numero primo: e' divisibile per %u\n",x,i);
  27.       return 0; // Una volta stampata la scritta, chiudo il programma
  28.     }
  29.   }
  30. }
  31.   printf("%u è un numero primo\n", x);
  32.   return 0;
  33. }
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement