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 N==20, a soma é 3+5+6+9+10+12+18+20=83.

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:
  • 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 “ A oplus B ;=; (A wed>= neg B);lor;(neg A wed>= B) é múltiplo de 3” e “ (i bmod 3 = 0);oplus;(i bmod 5 = 0) é 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 de e é:
No nosso caso:

Passo 3

Agora, vamos montar o passo a passo do algoritmo:
  1. Ler o valor inteiro .
  2. Inicializar uma variável soma com zero.
  3. Fazer um laço de repetição i de 1 até :
    a. Calcular i % 3 e i % 5.
    b. Testar se .
    c. Se for verdade, acrescentar i na soma.
  4. Ao final do laço, imprimir o valor de soma.
Cada parte é simples:
  • O operador % (ou mod) devolve o resto da divisão.
  • O laço for i = 1 to N repete a lógica pra cada i.
  • 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.

Exercícios relacionados