2013/14 – Fase scolastica – 09

Si consideri la seguente funzione:

Function f(n: Integer): Integer;
Var
   i: Integer;
Begin
   i:=1;
   While(n > 0) Do
      Begin
         n:=n-i;
         i:=i+2
      End;
   If(n=0) Then
      f:=1
   Else
      f:=0
End;

Cosa restituisce la funzione se viene chiamata passandole un numero n maggiore o uguale a zero?

  1. 1 se n è primo, 0 altrimenti
  2. 1 se n è dispari, 0 altrimenti
  3. 1 se n è un quadrato perfetto, 0 altrimenti
  4. 1 se n è una potenza di due, 0 altrimenti.