OneCompiler

Atividade 1 para P2, Amanda Mendes

43


==================================================

LISTA DE EXERCÍCIOS - MATEMÁTICA DISCRETA

==================================================

==================================================

EXERCÍCIO 1 - OPERAÇÕES COM CONJUNTOS

==================================================

print("======================================")
print("EXERCÍCIO 1 - OPERAÇÕES COM CONJUNTOS")
print("======================================")

Entrada dos conjuntos

entrada_A = input("Digite os elementos do conjunto A separados por espaço: ")
entrada_B = input("Digite os elementos do conjunto B separados por espaço: ")

Transformação em conjuntos (convertendo para int se forem números, mantendo str se forem letras)

A = set(int(x) if x.isdigit() else x for x in entrada_A.split())
B = set(int(x) if x.isdigit() else x for x in entrada_B.split())

Mostrar conjuntos (ordenados para melhor visualização)

print("\nConjunto A:", sorted(list(A)) if all(isinstance(i, int) for i in A) else A)
print("Conjunto B:", sorted(list(B)) if all(isinstance(i, int) for i in B) else B)

União

print("\n=== UNIÃO ===")
uniao = A.union(B)
print("A ∪ B =", sorted(list(uniao)) if all(isinstance(i, int) for i in uniao) else uniao)

Interseção

print("\n=== INTERSEÇÃO ===")
intersecao = A.intersection(B)
print("A ∩ B =", sorted(list(intersecao)) if all(isinstance(i, int) for i in intersecao) else intersecao)

Diferença

print("\n=== DIFERENÇA ===")
diferenca_A_B = A.difference(B)
diferenca_B_A = B.difference(A)

print("A - B =", sorted(list(diferenca_A_B)) if all(isinstance(i, int) for i in diferenca_A_B) else diferenca_A_B)
print("B - A =", sorted(list(diferenca_B_A)) if all(isinstance(i, int) for i in diferenca_B_A) else diferenca_B_A)

Produto cartesiano

print("\n=== PRODUTO CARTESIANO ===")
produto = []
for elemento_A in A:
for elemento_B in B:
produto.append((elemento_A, elemento_B))

print("A x B =", sorted(produto))

Verificação de subconjunto

print("\n=== SUBCONJUNTOS ===")
if A.issubset(B):
print("A está contido em B")
else:
print("A NÃO está contido em B")

if B.issubset(A):
print("B está contido em A")
else:
print("B NÃO está contido em A")

Cardinalidade

print("\n=== CARDINALIDADE ===")
print("Cardinalidade de A:", len(A))
print("Cardinalidade de B:", len(B))
print("Cardinalidade da união:", len(uniao))
print("Cardinalidade da interseção:", len(intersecao))

==================================================

EXERCÍCIO 2 - MDC, MMC, DIV E MOD

==================================================

print("\n======================================")
print("EXERCÍCIO 2 - MDC, MMC, DIV E MOD")
print("======================================")

Entrada dos números

a = int(input("Digite o primeiro número inteiro positivo: "))
b = int(input("Digite o segundo número inteiro positivo: "))

Garantindo que sejam positivos para não quebrar as regras matemáticas do exercício

a = abs(a)
b = abs(b)

Divisão inteira e resto

print("\n=== DIVISÃO INTEIRA E RESTO ===")
if b != 0:
divisao = a // b
resto = a % b
print(a, "div", b, "=", divisao)
print(a, "mod", b, "=", resto)
else:
print("Não é possível dividir por zero!")

Cálculo do MDC pelo Algoritmo de Euclides

print("\n=== CÁLCULO DO MDC ===")
x = a
y = b

while y != 0:
print(x, "=", y, "*", x // y, "+", x % y)
temp = y
y = x % y
x = temp

mdc = x
print("MDC =", mdc)

Cálculo do MMC

print("\n=== CÁLCULO DO MMC ===")
if mdc != 0:
mmc = (a * b) // mdc
print("MMC =", mmc)
else:
print("MMC = 0 (MDC é zero)")

==================================================

EXERCÍCIO 3 - ARITMÉTICA MODULAR

==================================================

print("\n======================================")
print("EXERCÍCIO 3 - ARITMÉTICA MODULAR")
print("======================================")

Entrada do valor de n

n = int(input("Digite o valor de n (módulo): "))

Tabela da adição modular

print("\n=== TABELA DA ADIÇÃO MODULAR ===")
for i in range(n):
for j in range(n):
resultado = (i + j) % n
print(resultado, end="\t")
print()

Tabela da multiplicação modular

print("\n=== TABELA DA MULTIPLICAÇÃO MODULAR ===")
for i in range(n):
for j in range(n):
resultado = (i * j) % n
print(resultado, end="\t")
print()

Verificação de congruência

print("\n=== CONGRUÊNCIA MODULAR ===")
val_a = int(input("Digite o valor de a: "))
val_b = int(input("Digite o valor de b: "))

if (val_a - val_b) % n == 0:
print(val_a, "é congruente a", val_b, f"mod {n}")
else:
print(val_a, "NÃO é congruente a", val_b, f"mod {n}")

Inverso multiplicativo

print("\n=== INVERSO MULTIPLICATIVO ===")
target_x = int(input(f"Digite um elemento de Z{n}: "))

inverso = None
for i in range(n):
if (target_x * i) % n == 1:
inverso = i
break

if inverso is not None:
print("O inverso multiplicativo de", target_x, "mod", n, "é", inverso)
else:
print(target_x, "não possui inverso multiplicativo em Z", n)