Exercício 1: soma de quadrados

Pergunte ao usuário por um número $n$. Em seguida, pergunte a ele por $n$ números inteiros e, no final, mostre a ele a soma dos quadrados dos $n$ números que o usuário forneceu. Por exemplo, se as respostas do usuário forem: 3, 4, 2, 2, sua resposta deve ser $4^2 + 2^2 + 2^2 = 24$. Faça um programa usando o comando for e outro usando o comando while.


In [7]:
# Faça aqui o programa usando for
n = int(input("De o valor de n: "))
total = 0
for n in range(1, n + 1):
    num = int(input('Número a ser somado: '))
    total = total + (num**2)
print(total)


De o valor de n: 4
Número a ser somado: 22
Número a ser somado: 33
Número a ser somado: 19
Número a ser somado: 91
10215

In [15]:
# Faça aqui o programa usando while
teto = int(input('Número a serem somados: '))
total1 = 0
r = 0
while(r < teto):
    nume = int(input('Número a ser somado: '))
    total1 = total1 + (nume**2)
    r = r + 1
print(total1)


Número a serem somados: 4
Número a ser somado: 22
Número a ser somado: 33
Número a ser somado: 19
Número a ser somado: 91
10215

Exercício 2: calculando o fatorial

Talvez alguns de vocês saibam que o módulo math do Python tem uma função chamada factorial que calcula o fatorial de um número. Neste exercício, vamos fazer um programa para calcular o fatorial sem usar o módulo math.

Você sabe que o fatorial de um número inteiro positivo $n$ é definido como

$$n! = n\times (n-1)\times (n-2)\times\cdots\times 3\times 2\times 1$$

Neste exemplo, você deve fazer um programa que faz o seguinte:

  • Pergunta o valor de $n$ ao usuário,
  • Calcula o fatorial de $n$ e mostra o resultado ao usuário.

Não use a função **`factorial`** do módulo **`math`**!


In [7]:
# Solução análoga ao exemplo da soma de 1 a n no arquivo Unidade5.ipynb (mas agora com o produto)
n = int(input('Número: '))

fac = 1

while (n>0):
    fac = n * fac
    n = n - 1
print(fac)


Número: 25
15511210043330985984000000

Exercício 3: distância total

Neste exercício você deve fazer um programa que calcula a distância percorrida por um helicóptero. O helicóptero parte da posição $(0, 0)$, voa em linha reta até a posição $(x_1, y_1)$ e pousa, depois voa em linha reta até a posição $(x_2, y_2)$ e pousa, e assim por diante, até pousar definitivamente na posição $(x_n, y_n)$. Suponha que essas coordenadas são todas inteiras. Seu programa deve fazer o seguinte:

  • pedir para o usuário digitar o número $n$ de pontos que o helicóptero deve visitar (além da origem);
  • depois pedir as coordenadas dos pontos, calcular a distância entre cada dois pontos consecutivos e acumular esse valor;
  • finalmente, seu programa deve mostrar a distância total percorrida pelo helicóptero.

Veja um exemplo de execução abaixo.

Quantos heliportos o helicóptero irá visitar? 3
De a coordenada x do heliporto 1? 4
De a coordenada y do heliporto 1? 0
De a coordenada x do heliporto 2? 4
De a coordenada y do heliporto 2? 3
De a coordenada x do heliporto 3? 0
De a coordenada y do heliporto 3? 0
A distância total percorrida é 12.0

Dica: $\sqrt{x} = x^{1/2}$


In [32]:
# Solução análoga ao exemplo das vendas no arquivo Unidade5.ipynb (mas agora você deve calcular distâncias)
n = int(input('Número total de coordenadas: '))

xa = 0
ya = 0
dist = 0

while(n>0):
    x = int(input('Coordenada x: '))
    y = int(input('Coordenada y: '))
    
    parc = (((x - xa)**2) + ((y - ya)**2))**(1/2)    
    xa = x
    ya = y
    dist = dist + parc
    n = n - 1
print('A distância total percorrida é: {:.2f}'.format(dist))


Número total de coordenadas: 4
Coordenada x: 4
Coordenada y: 0
Coordenada x: 0
Coordenada y: 0
Coordenada x: 4
Coordenada y: 3
Coordenada x: 4
Coordenada y: 0
A distância total percorrida é: 16.00

Exercício 4: $n$ é primo?

Um número inteiro $n > 1$ é primo se tem exatamente dois divisores: $1$ e o próprio $n$.

Faça um programa que pede para o usuário digitar um número inteiro $n > 1$ e que decide se $n$ é primo ou composto.


In [121]:
n = int(input('Digite o número a ser verificado: '))
a = 0 

for i in range(2,n+1):
    if n % i == 0:
        a = a + 1
if a == 1:
    print('{} é primo'.format(n))
else:
    print('{} é composto'.format(n))


Digite o número a ser verificado: 10884
10884 é composto

Exercício 5: primos menores que $n$

Faça um programa que pede para o usuário digitar um número inteiro $n > 1$ e que conta (e depois mostra) quantos números primos são menores ou iguais a $n$.


In [177]:
n = int(input('Digite o número a ser verificado: '))
a = 0

for i in range(2,n+1):
    for x in range(2,i):
        if i % x == 0:
            break
    else:
        a = a + 1

print('Até o número {}, existe(m) {} primo(s)'.format(n,a))


Digite o número a ser verificado: 10884
Até o número 10884, existe(m) 1323 primo(s)

Exercício 6: quadrados

Faça um programa que fica executando o seguinte procedimento:

  • pede para o usuário digitar um número $n > 0$;
  • se $n > 0$, imprime $n^2$, senão termina o programa.

In [175]:
x = True

while x:

    n = int(input('Digite um número maior que zero: '))

    if n>0:
        print('n² é: ',n**2)
    else:
        x = False


Digite um número maior que zero: 1
n² é:  1
Digite um número maior que zero: 2
n² é:  4
Digite um número maior que zero: 3
n² é:  9
Digite um número maior que zero: 4
n² é:  16
Digite um número maior que zero: 5
n² é:  25
Digite um número maior que zero: 6
n² é:  36
Digite um número maior que zero: 7
n² é:  49
Digite um número maior que zero: 8
n² é:  64
Digite um número maior que zero: 9
n² é:  81
Digite um número maior que zero: 10
n² é:  100
Digite um número maior que zero: 0