Implementar um algoritmo que recebe solicita ao usuário um número inteiro N e mostra a soma de todos os números positivos menores ou iguais a N que são divisíveis por 3 ou por 5 , mas não por ambos. Exemplo: para
, a soma é
.
Passo 1
Beleza, vamos recapitular o que o enunciado pede. A ideia é criar um algoritmo (tipo um pseudocódigo ou um programinha) que, dado um número inteiro N, calcule a soma de todos os números positivos até N que sejam divisíveis por 3 ou por 5, mas não pelos dois ao mesmo tempo.
Conteúdo envolvido:
Conteúdo envolvido:
- Operador módulo (para saber se um número é divisível por outro).
- Estrutura de repetição (um laço que vai de 1 até N).
- Estrutura condicional (pra testar a condição “divisível por 3 OU 5, mas não por ambos”).
Passo 2
Antes de codificar, vamos entender a condição “divisível por 3 ou por 5, mas não pelos dois”. Em lógica booleana, isso é um XOR entre “
é múltiplo de 3” e “
é múltiplo de 5”.
- “
é múltiplo de 3” significa . - “
é múltiplo de 5” significa .
O XOR é verdadeiro quando exatamente uma das afirmações é verdadeira. A fórmula em LaTeX para XOR dee é:
No nosso caso:
Passo 3
Agora, vamos montar o passo a passo do algoritmo:
- Ler o valor inteiro
. - Inicializar uma variável
soma
com zero. - Fazer um laço de repetição
i
de 1 até:
a. Calculari % 3
ei % 5
.
b. Testar se.
c. Se for verdade, acrescentari
nasoma
. - Ao final do laço, imprimir o valor de
soma
.
Cada parte é simples:
- O operador
%
(oumod
) devolve o resto da divisão. - O laço
for i = 1 to N
repete a lógica pra cadai
. - A condicional garante que você só some quando for divisível por 3 ou por 5, mas não quando for dos dois (ou seja, não some os múltiplos de 15).
Resposta
Segue um pseudocódigo completo e bem didático:
Algoritmo Soma3ou5ExcetoAmbos
// Passo 1: Leitura
Escreva "Digite um número inteiro N:"
Leia N
// Passo 2: Inicialização
soma ← 0
// Passo 3: Laço de 1 até N
Para i de 1 até N faça
múltiploDe3 ← (i mod 3 = 0)
múltiploDe5 ← (i mod 5 = 0)
// XOR lógico: verdadeiro se só um dos dois for verdadeiro
se (múltiploDe3 e não múltiploDe5) ou (não múltiploDe3 e múltiploDe5) então
soma ← soma + i
fim se
fim Para
// Passo 4: Saída
Escreva "A soma dos números até", N, "divisíveis por 3 ou 5 (mas não por ambos) é", soma
FimAlgoritmo
Esse algoritmo, por exemplo, para
vai imprimir 83, conforme o exemplo do enunciado.