{Teste OK}
programa test1;

var a,b,c,x: inteiro;

{proc 1}
procedimento analisa1;
var x: inteiro;
       z: booleano;

 procedimento analisa2;
 inicio
   leia(a);b:=1;
   b:= a*a+(c div b);
   escreva(b) 
 fim;

 funcao func1: inteiro;
 inicio
  analisa2;
  func1:= +a-(-b);
 fim;

inicio
  leia(x);z:= falso;
  se (x>1)ou (+x*(-100)>(-func1))e(nao z) {ou (+x*(-100)>(-func1))e(nao z)
              ou (+x*(-100)>(-func1))e(nao z) ou (+x*(-100)>(-func1))e(nao z)
              ou (+x*(-100)>(-func1))e(nao z) ou (+x*(-100)>(-func1))e(nao z)
              ou (+x*(-100)>(-func1))e(nao z) ou (+x*(-100)>(-func1))e(nao z)
              ou (+x*(-100)>(-func1))e(nao z) ou (+x*(-100)>(-func1))e(nao z)
              ou (+x*(-100)>(-func1))e(nao z) ou (+x*(-100)>(-func1))e(nao z)
              ou (+x*(-100)>(-func1))e(nao z) ou (+x*(-100)>(-func1))e(nao z)
              ou (+x*(-100)>(-func1))e(nao z) ou (+x*(-100)>(-func1))e(nao z)}
entao
      inicio      
           x:= func1;
           z:= falso;
           escreva(x);
      fim;
  enquanto nao ( (-a*(-b) = 1064) ou (a<= (-1000)) ou z)  {condicao de parada}
  faca inicio
           a:= x+b;
           z:= falso ou nao falso
       fim;
  escreva(a)
fim;



inicio
inicio
    leia(c);
    analisa1;
    se b > (c+ a*a)
    entao escreva(b)
    senao escreva(c)
fim
fim.


