OneCompiler

Atividade 1 Programação P1 - Matheus de Alcântara (231026509)

Atividade 1 Progamação P1

Questão 1

Fatorial

def fatorial(n):
    if n == 0:
        return 1
    else:
        return n * fatorial(n - 1)


def main():
    x = int(input('Digite um número: '))
    print(f'O fatorial de {x} é {fatorial(x)}')


if __name__ == '__main__':
    main()

python fat.py
Digite um número: 5
O fatorial de 5 é 120

Questão 2

Fibonacci


def fibonacci(n):
    if n == 0:
        return 0
    elif n == 1:
        return 1
    else:
        return fibonacci(n-1) + fibonacci(n-2)


def main():
    x = int(input('Digite um número: '))
    print(f'O termo {x} da sequência de Fibonacci é {fibonacci(x)}')


if __name__ == '__main__':
    main()

python fib.py
Digite um número: 8
O termo 8 da sequência de Fibonacci é 21

Questão 3

Impressão dos números naturais de 1 a n

def print_n(n):
    if n > 0:
        print_n(n-1)
        print(n, end=' ')


def main():
    x = int(input('Digite um número: '))
    print('Impressão de 1 até o número digitado:')
    print_n(x)


if __name__ == '__main__':
    main()

python print.py
Digite um número: 10
Impressão de 1 até o número digitado:
1 2 3 4 5 6 7 8 9 10 

Questão 4

Soma recursiva dos números de 1 a n

def seq(n):
    return n + seq(n-1) if n > 0 else 0


def main():
    x = int(input('Digite um número: '))
    print('Soma de 1 até o número digitado:')
    print(seq(x))


if __name__ == '__main__':
    main()

python seq.py
Digite um número: 100
Soma de 1 até o número digitado:
5050

Questão 5

Algoritmo de euclides para cáculo do MDC

def mdc(a, b):
    if b == 0:
        return a
    return mdc(b, a % b)


def main():
    a = int(input('Digite o primeiro número: '))
    b = int(input('Digite o segundo número: '))
    print('-' * 20)
    print(f'O MDC de {a} e {b} é {mdc(a, b)}')


if __name__ == '__main__':
    main()

python mdc.py
Digite o primeiro número: 5
Digite o segundo número: 3
--------------------
O MDC de 5 e 3 é 1

Questão 6

Calcular o MMC a partir do MDC

def mdc(a, b):
    if b == 0:
        return a
    return mdc(b, a % b)


def mmc(a, b):
    return a * b // mdc(a, b)


def main():
    a = int(input('Digite o primeiro número: '))
    b = int(input('Digite o segundo número: '))
    print('-' * 20)
    print(f'O MMC de {a} e {b} é {mmc(a, b)}')


if __name__ == '__main__':
    main()


python mmc.py
Digite o primeiro número: 23
Digite o segundo número: 34
--------------------
O MMC de 23 e 34 é 782

Questão 7

Tabela Z_n para adição modular

def mod_sum(n):
    for i in range(0, n):
        if i == 0:
            print('+ |', end=' ')
            for j in range(0, n):
                print(j, end=' ')
            print()
            print('-' * (n * 2 + 3))
        print(i, '|', end=' ')
        for j in range(0, n):
            print((i + j) % n, end=' ')
        print()


def main():
    x = int(input('Digite um número para gerar sua Tabela Z_n de adição modular: '))
    print('-' * 20)
    mod_sum(x)


if __name__ == '__main__':
    main()

python mod_sum.py
Digite um número para gerar sua Tabela Z_n de adição modular: 5
--------------------
+ | 0 1 2 3 4 
-------------
0 | 0 1 2 3 4 
1 | 1 2 3 4 0 
2 | 2 3 4 0 1 
3 | 3 4 0 1 2 
4 | 4 0 1 2 3 

Questão 8

Tabela Z_n para multiplicação modular

def mod_sum(n):
    for i in range(0, n):
        if i == 0:
            print('* |', end=' ')
            for j in range(0, n):
                print(j, end=' ')
            print()
            print('-' * (n * 2 + 3))
        print(i, '|', end=' ')
        for j in range(0, n):
            print((i * j) % n, end=' ')
        print()


def main():
    x = int(input('Digite um número para gerar sua Tabela Z_n de multiplicação modular: '))
    print('-' * 20)
    mod_sum(x)


if __name__ == '__main__':
    main()


python mod_mult.py
Digite um número para gerar sua Tabela Z_n de multiplicação modular: 5
--------------------
* | 0 1 2 3 4 
-------------
0 | 0 0 0 0 0 
1 | 0 1 2 3 4 
2 | 0 2 4 1 3 
3 | 0 3 1 4 2 
4 | 0 4 3 2 1