07. Operatore modulo

In matematica l'operatore modulo restituisce il resto della divisione tra due numeri interi.

Normalmente, per indicarlo, si usa l'abbreviazione mod.

Esempi:

    • 78 mod 5 = 3

    • 4 mod 5 = 4

    • 6 mod 3 = 0

Notare che, dato un numero N, per qualsiasi numero positivo X si ha

0 <= (X mod N) <= N-1

cioè, il risultato dell'operazione è compreso tra 0 e N-1.

Nel linguaggio C l'operatore modulo è indicato con il simbolo % (percento).

Esempio:

Consideriamo il programma, già analizzato, che verifica se un numero è primo.

Utilizzando l'operatore modulo diventa:


#include <stdio.h>

int main()

{

int i, primo, N;

printf("Inserire un numero intero maggiore di 1: ");

scanf("%d", &N);

if (N<=1) {

printf("Il numero inserito non e' valido\n");

return 1;

}

primo=1;

i=2;

while (i <= N/2){

if (N % i == 0){

primo = 0;

break;

}

i++;

}

if (primo)

printf("%d e' un numero primo\n", N);

else

printf("%d NON e' un numero primo\n", N);

return 0;

}

if (N % i == 0)

Questa istruzione verifica se i è un divisore di N, cioè se la divisione tra N ed i dà resto 0.


Nota:

Per la precisione l'operatore % si comporta come l'operatore modulo della calcolatrice solo nel caso dei numeri positivi.