Escrever um programa para verificar se um dado valor inteiro não-negativo é um múltiplo de 3 ou de 7 , mas não de ambos.
Passo 1
Primeiro, entendendo o enunciado: a tarefa é criar um programa que receba um valor inteiro não-negativo e diga se ele é múltiplo de 3 ou de 7, mas não de ambos ao mesmo tempo. Esse problema envolve o uso do operador resto (módulo) e lógica booleana para testar as condições.
Passo 2
Para verificar se um número
é múltiplo de um divisor
, usamos o resto da divisão: se
, então
é múltiplo de
. Vou aplicar isso para
e
.
Defino duas variáveis lógicas: seja indicando múltiplo de 3, e
indicando múltiplo de 7.
Defino duas variáveis lógicas: seja
Passo 3
Como queremos múltiplo de 3 OU de 7, mas não de ambos, usamos a operação “ou exclusivo”:
Em pseudo-código, isso fica:
(m3 && !m7) || (m7 && !m3)
.Passo 4
Agora é só montar o programa: ler o valor de
, calcular
e
, aplicar a condição de ou exclusivo e imprimir o resultado.
Resposta
n = int(input("Digite um número inteiro não-negativo: "))
m3 = (n % 3 == 0)
m7 = (n % 7 == 0)
m3 = (n % 3 == 0)
m7 = (n % 7 == 0)
if (m3 and not m7) or (m7 and not m3):
print(“É múltiplo de 3 ou de 7, mas não de ambos.”)
else:
print(“Não atende à condição de ser múltiplo de 3 ou de 7, mas não de ambos.”)
print(“É múltiplo de 3 ou de 7, mas não de ambos.”)
else:
print(“Não atende à condição de ser múltiplo de 3 ou de 7, mas não de ambos.”)