2012 – 2

Cosa restituisce la seguente funzione ?

int f(int n) 
{
   int k;
   k=2;
   while((k*k <= n) && (n % k != 0))
      k = k+1;
   if(k*k > n) 
      return 1;
   else 
      return 0;
}
  1. 0 se k < n e 1 altrimenti
  2. 1 se n è primo e 0 altrimenti
  3. 0 se n è primo e 1 altrimenti
  4. 1 se n=k*k e 0 altrimenti

Soluzione: b (1 se n è primo e 0 altrimenti)


Il ciclo while scorre tutti gli interi da 2 alla radice quadrata di n (se il resto della divisione e è diverso da zero).
All’uscita restituisce 1 se ha superato la radice, 0 se una divisione ha avuto successo…