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; }
- 0 se k < n e 1 altrimenti
- 1 se n è primo e 0 altrimenti
- 0 se n è primo e 1 altrimenti
- 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…