2016 – 3

Si consideri la seguente funzione:

int mistero(int x)
{
   int j=2, i, m=x;
   int v[100];
   for(i=0; i <= x+1; i++)
      v[i]=1;
   while(j*j <= x)
   {
      for(i=1; i <= x+1; i++) 
      {
         if(j*i <= x+1)
            v[j*i]=0;
      }
      j++;
   }
   while(v[m] == 0)
      m--;
   return m;
}

Cosa restituisce la funzione se viene chiamata passandole il valore x uguale a 30?

  1. 19
  2. 27
  3. la funzione non termina
  4. 29