OneCompiler

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