9 Finclude <stdio.h>
10
11 - int main(){
12 int x, y=0;
13 scanf(%d, &x);
14 - while(x>0){
15 x=x/15;
16
17
y++;
}
18
19
20
21}
Considerando a execuçâo do código acima, qual o valor dos valores abaixo o usuário deve digitar para que o número impresso seja 4?
( ) 4375

Passo 1

Beleza, vamos resumir o que o exercício está pedindo. Temos um código em C que lê um número inteiro x e, dentro de um laço while, divide esse número por 15 repetidamente enquanto x for maior que 0. A cada divisão, uma variável y é incrementada. O objetivo é descobrir qual valor o usuário deve inserir para que, ao final, y seja igual a 4. Vamos usar conceitos de laços de repetição e divisões sucessivas para resolver isso.

Passo 2

Primeiro, vamos entender o que o código está fazendo:
int x, y=0;
scanf("%d", &x);
while(x > 0){
    x = x / 15;
    y++;
}
Aqui, x é o número que o usuário entra, e y começa em 0. Enquanto x for maior que 0, o código divide x por 15 e incrementa y em 1.

Passo 3

Nosso objetivo é que, após o laço while, y seja igual a 4. Isso significa que a divisão por 15 deve ocorrer 4 vezes antes de x se tornar 0 ou um número negativo. Vamos entender quantas vezes podemos dividir um número por 15 antes que ele seja menor ou igual a 0.

Passo 4

Vamos definir isso matematicamente. Queremos encontrar o menor número x tal que:
x15^4 <= 0
Mas como x é um inteiro positivo, na verdade queremos que após 4 divisões, x seja menor que 1. Assim, o menor valor que satisfaz essa condição é quando:
15^3 <= x < 15^4
Calculando os valores:
15^3 = 3375
15^4 = 50625

Passo 5

Isso significa que qualquer valor de x que esteja entre 3375 e 50624 fará com que y seja incrementado 4 vezes até que o laço pare. O exercício apresenta a opção 4375, que está dentro deste intervalo.

Resposta

O usuário deve digitar 4375 para que o número impresso seja 4.

Exercícios relacionados