1. Cálculo de fatorial com recursividade
num = int(input("Digite um número inteiro positivo: "))
def fatorial(n):
return 1 if n <= 1 else n * fatorial(n - 1) # Caso base e recursão
if num < 0:
print("Números negativos.")
else:
print(f"O fatorial de {num} é {fatorial(num)}")
2. Sequência de Fibonacci
n_termos = int(input("Digite o número de termos da sequência de Fibonacci: "))
def fibonacci(n):
return 1 if n <= 2 else fibonacci(n - 1) + fibonacci(n - 2) # Caso base e soma recursiva
print(f"Sequência de Fibonacci até o {n_termos}º termo:")
for i in range(1, n_termos + 1):
print(fibonacci(i), end=" ")
print()
3. Impressão de números naturais de 1 a n
limite = int(input("Digite um número natural: "))
def imprimir_numeros(n):
if n > limite: return # Caso base
print(n)
imprimir_numeros(n + 1) # Recursão
if limite < 1:
print("Digite um número natural maior ou igual a 1.")
else:
imprimir_numeros(1)
4. Soma de números de 1 a n
valor = int(input("Digite um número inteiro positivo: "))
def soma_recursiva(n):
return 0 if n == 0 else n + soma_recursiva(n - 1) # Caso base e recursão
if valor <= 0:
print("Digite um número positivo.")
else:
print(f"A soma dos números de 1 até {valor} é {soma_recursiva(valor)}")
5. Algoritmo de Euclides para o cálculo do MDC
a = int(input("Número A: "))
b = int(input("Número B: "))
def mdc(a, b):
while b: # Continua até o resto ser zero
a, b = b, a % b
return a
print(f"O MDC de {a} e {b} é {mdc(a, b)}")
6. Cálculo do MMC usando o MDC
a = int(input("Número A: "))
b = int(input("Número B: "))
def mdc(a, b):
while b:
a, b = b, a % b
return a
def mmc(a, b):
return a * b // mdc(a, b) # Fórmula do MMC
print(f"O MMC de {a} e {b} é {mmc(a, b)}")
7. Tabela Z_n para adição modular
n = int(input("Digite o tamanho da tabela: "))
def tabela_adicao_modular(n):
tabela = [] # Inicializa a tabela
for i in range(n):
linha = [] # Cria uma linha da tabela
for j in range(n):
linha.append((i + j) % n) # Adiciona o valor calculado
tabela.append(linha) # Adiciona a linha à tabela
return tabela
def imprimir_tabela(tabela):
for linha in tabela:
print(' '.join(map(str, linha))) # Exibe cada linha da tabela
tabela = tabela_adicao_modular(n)
imprimir_tabela(tabela)
8. Tabela Z_n para multiplicação modular
n = int(input("Digite o tamanho da tabela: "))
def tabela_multiplicacao_modular(n):
tabela = [] # Inicializa a tabela
for i in range(n):
linha = [] # Cria uma linha da tabela
for j in range(n):
linha.append((i * j) % n) # Adiciona o valor calculado
tabela.append(linha) # Adiciona a linha à tabela
return tabela
tabela = tabela_multiplicacao_modular(n)
imprimir_tabela(tabela)