OneCompiler

Atividade1_MD2

Example heading with h2 size

Example heading with h3 size

Following is sample python code.

# Questão 1
def fat(n):
    if (n == 1 or  n == 0): return 1
    return n*fat(n-1)

print(fat(5))

# Questão 2
def fib(n):
    if (n == 0 or n == 1): return n
    return fib(n-1)+fib(n-2)

print(fib(5))

# Questão 3
def nat_numbers(n, i=1):
    if(i>n):return 0
    print(i)
    nat_numbers(n, i+1)

nat_numbers(100)

# Questão 4
def sum(n):
    if(not n):return 0
    return n+sum(n-1)

print(sum(100))

# Questão 5
def mdc(x,y):
    if((max(x,y)%min(x,y))==0): return min(x,y)
    if((max(x,y)%min(x,y))==1): return min(x,y)
    return mdc(min(x,y), max(x,y)%min(x,y))


print(mdc(80,60))

# Questão 6
def mmc(x,y):
    return x*y / mdc(x,y)

print(mmc(64,8))

# Questão 7
def adicao_modular(a, b, z):
  return (a + b) % z

a, b, z = 2, 7, 10

print(f"{a} ⊕ {b} em Z{z} = {adicao_modular(a, b, z)}")

# Questão 8
def multiplicacao_modular(a, b, z):
  return (a * b) % z

a, b, z = 2, 7, 10

print(f"{a} ⊗ {b} em Z{z} = {multiplicacao_modular(a, b, z)}")

from tabulate import tabulate

def tabela_adicao_modular(z):
  tabela = []
  for a in range(z):
    linha = []
    for b in range(z):
      linha.append(adicao_modular(a, b, z))
    tabela.append(linha)

  header = ["⊕"] + list(range(z))
  tabela_com_cabecalho = [[i] + linha for i, linha in enumerate(tabela)]
  return header, tabela_com_cabecalho


header, tabela = tabela_adicao_modular(10)

print(tabulate(tabela, headers=header, tablefmt="grid"))

from tabulate import tabulate

def tabela_multiplicacao_modular(z):
  tabela = []
  for a in range(z):
    linha = []
    for b in range(z):
      linha.append(multiplicacao_modular(a, b, z))
    tabela.append(linha)

  header = ["⊗"] + list(range(z))
  tabela_com_cabecalho = [[i] + linha for i, linha in enumerate(tabela)]
  return header, tabela_com_cabecalho

header, tabela = tabela_multiplicacao_modular(10)

print(tabulate(tabela, headers=header, tablefmt="grid"))