Lista 1 MD2
Lista 1 de MD2 em Python
Eduardo de Almeida Morais - 231011275
Recursão
1. Cálculo de n! utilizando recursividade
def fatorial(n):
if n == 0 or n == 1:
return 1
else:
return n * fatorial(n - 1)
print(fatorial(5)) # substitua o número 5 pelo que você deseja testar
2. Sequência de Fibonacci
def fibonacci(n):
if n == 0:
return 0
elif n == 1:
return 1
else:
return fibonacci(n - 1) + fibonacci(n - 2)
print(fibonacci(10)) # substitua o número 10 pelo que você deseja testar
3. Impressão recursiva dos números naturais de 1 a n
def impressaoNaturais(n):
if n > 0:
impressaoNaturais(n - 1)
print(n)
impressaoNaturais(10) # substitua o número 10 pelo que você deseja testar
4. Método recursivo que receba como entrada um número inteiro positivo n e retorne:
1 + 2 + 3 + 4 + … + n
def somaNumeros(n):
if n == 1:
return 1
else:
return n + somaNumeros(n - 1)
print(somaNumeros(5)) # substitua o número 5 pelo que você deseja testar
Divisibilidade
5. Algoritmo de Euclides para o cálculo do MDC
def mdc(a, b):
r = None
while r != 0:
r = a % b
a = b
b = r
return a
print(mdc(5, 10)) # substitua os números 5 e 10 por aqueles que você deseja testar
6. Calcular o MMC(a,b) a partir do MDC(a,b)
def mdc(a, b):
r = None
while r != 0:
r = a % b
a = b
b = r
return a
def mmc (a, b):
mmc = (a*b) // mdc(a,b)
return mmc
print(mmc(5, 10)) # substitua os números 5 e 10 por aqueles que você deseja testar
Aritmética Modular
7. Tabela Z_n para adição modular
def adicao_modular(a, b, n):
return (a + b) % n
def tabela_adicao_modular(n):
print(" + ", end="")
for i in range(n):
print(f"{i:3}", end=" ")
print()
for i in range(n):
print(f"{i:3}|", end=" ")
for j in range(n):
print(f"{adicao_modular(i, j, n):3}", end=" ")
print()
tabela_adicao_modular(5) # substitua o número 5 pelo que você deseja testar
8. Tabela Z_n para multiplicação modular
def multiplicacao_modular(a, b, n):
return (a * b) % n
def tabela_multiplicacao_modular(n):
print(" + ", end="")
for i in range(n):
print(f"{i:3}", end=" ")
print()
for i in range(n):
print(f"{i:3}|", end=" ")
for j in range(n):
print(f"{multiplicacao_modular(i, j, n):3}", end=" ")
print()
tabela_multiplicacao_modular(5) # substitua o número 5 pelo que você deseja testar