O objetivo do exercício é executar o algoritmo linha por linha.
Não é difícil, mas é trabalhoso.
Por que isto é importante?
Por que ajuda a debugar o código, uma vez que você sabe qual resultado deveria ser gerado e não foi.
Assim, se você quer resolver questões como esta, basta substituir linha por linha os valores atribuídos a cada variável, como dito é trabalhoso, mas não é difícil.
Pra ter uma noção, compare o algoritmo com uma implementação satisfatória em java, com um pequeno ajuste:
public static void main(String[] args) {
int x, y = 1, z = 0;
int atual = 30;//alterar o valor para 36, para o segundo teste
x = atual;
while (x > y) {
x = x - y;
z = z + 1;
y = y + 2;
System.out.println("Para x iniciado em "+atual+" temos: x = "+x+" y = "+y+" z = "+z);
}
}
Quando o valor é 30 temos como saida:
x = 29 y = 3 z = 1
x = 26 y = 5 z = 2
x = 21 y = 7 z = 3
x = 14 y = 9 z = 4
x = 5 y = 11 z = 5
E para x iniciado em 36:
x = 35 y = 3 z = 1
x = 32 y = 5 z = 2
x = 27 y = 7 z = 3
x = 20 y = 9 z = 4
x = 11 y = 11 z = 5
Agora que você sabe as saídas, recomendo estudar novamente a questão, fazendo as atribuições linha por linha, para ver se compreende o funcionamento.
Té+