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