Baixe o app para aproveitar ainda mais
Prévia do material em texto
04/09/2021 Lista 3 - Estrutura de Repetição: Revisão da tentativa https://aprender3.unb.br/mod/quiz/review.php?attempt=850051&cmid=426983 1/36 Iniciado em terça, 24 ago 2021, 21:12 Estado Finalizada Concluída em sexta, 3 set 2021, 10:18 Tempo empregado 9 dias 13 horas Avaliar 10,00 de um máximo de 10,00(100%) ??? 04/09/2021 Lista 3 - Estrutura de Repetição: Revisão da tentativa https://aprender3.unb.br/mod/quiz/review.php?attempt=850051&cmid=426983 2/36 Questão 1 Correto Atingiu 1,00 de 1,00 Divisores de um número Dado um número N, escreva todos os seus divisores começando do menor para o maior. Entrada: Um número inteiro N, 0 < N < 150000000. Saída: Todos os seus divisores, um por linha. Comentário: Existe em Python o operador módulo que determina o resto de uma operação de divisão inteira. Exemplo: A % B. For example: Input Result 2 1 2 3 1 3 4 1 2 4 Answer: (penalty regime: 0, 0, 0, 1, 2, ... %) #divisores de um número dv=input() n=int(dv) #loop for c in range(1,n+1): if (n%c==0): 1 2 3 4 5 6 ▼ 7 8 ▼ ??? 04/09/2021 Lista 3 - Estrutura de Repetição: Revisão da tentativa https://aprender3.unb.br/mod/quiz/review.php?attempt=850051&cmid=426983 3/36 if (n%c 0): print(c) Input Expected Got 2 1 2 1 2 3 1 3 1 3 4 1 2 4 1 2 4 10 1 2 5 10 1 2 5 10 100 1 2 4 5 10 20 25 50 100 1 2 4 5 10 20 25 50 100 1 1 1 8 ▼ 9 ??? 04/09/2021 Lista 3 - Estrutura de Repetição: Revisão da tentativa https://aprender3.unb.br/mod/quiz/review.php?attempt=850051&cmid=426983 4/36 Input Expected Got 999 1 3 9 27 37 111 333 999 1 3 9 27 37 111 333 999 13 1 13 1 13 16127 1 16127 1 16127 14143379 1 877 16127 14143379 1 877 16127 14143379 Passou em todos os teste! Correto Notas para este envio: 1,00/1,00. ??? 04/09/2021 Lista 3 - Estrutura de Repetição: Revisão da tentativa https://aprender3.unb.br/mod/quiz/review.php?attempt=850051&cmid=426983 5/36 Questão 2 Correto Atingiu 1,00 de 1,00 Duplas de Inteiros Faça um algoritmo para ler um valor inteiro T, um valor A e um valor N. Leia T vezes valores inteiros A e N e imprima cada um dos N números consecutivos a partir de A, incluindo o A. Imprima também a soma dos N números a partir de A (inclusive), para cada um dos valores A e N lidos. Entrada: A entrada contém somente valores inteiros, sendo T >= 0 e N > 0. Na primeira linha será lido o valor T e nas próximas T linhas serão lidos os valores de A e N, separados por espaço. Saída: Escreva na tela, para cada dupla de A e N lidos, cada um dos N números a partir de A, separados por espaço. Logo em seguida imprima X, onde X representa a soma dos N números a partir de A, conforme exemplo de saída. Não deve haver espaços em branco após o último valor de cada linha. Comentários: Lembre-se que para ler vários valores em uma mesma linha, use input().split(). Se o argumento de split for vazio, o separador das variáveis é um espaço em branco. Porém, input() lê apenas strings do teclado, portanto você deverá converter as strings em �oats. No exemplo a seguir, o usuário digita valores separados por um espaço em branco e aperta enter para enviá-los, então, o programa lê esses valores separados por espaços como strings (na ordem em que aparecem), guardados nas variáveis correspondentes e os converte para inteiros: A, B = input().split() A, B = [int(A), int(B)] O comandp print() tem diversos parâmetros opcionais, entre eles 'end' através do qual podemos especi�car o que deverá ser impresso ao �nal de uma linha. Podemos assim alterar o default line feed e usar, por exemplo, um espaço em branco com o parâmetro end= " ". For example: Input Result ??? 04/09/2021 Lista 3 - Estrutura de Repetição: Revisão da tentativa https://aprender3.unb.br/mod/quiz/review.php?attempt=850051&cmid=426983 6/36 Input Result 3 1 3 4 5 0 10 1 2 3 6 4 5 6 7 8 30 0 1 2 3 4 5 6 7 8 9 45 2 5 5 4 3 5 6 7 8 9 35 4 5 6 15 3 -1 4 -5 10 -3 1 -1 0 1 2 2 -5 -4 -3 -2 -1 0 1 2 3 4 -5 -3 -3 Answer: (penalty regime: 0, 0, 0, 1, 2, ... %) #Dupla de inteiros t = int(input()) #A entrada contém somente valores inteiros, sendo T >= 0 e # Na primeira linha será lido o valor T e nas próximas #T linhas serão lidos os valores de A e N, separados por e while(t > 0): A, B = input().split() A, B = [int(A), int(B)] soma = 0 x = A while(x < A + B 1): 1 2 3 4 5 6 7 8 9 ▼ 10 11 12 13 14 15 ??? 04/09/2021 Lista 3 - Estrutura de Repetição: Revisão da tentativa https://aprender3.unb.br/mod/quiz/review.php?attempt=850051&cmid=426983 7/36 Input Expected GotInput Expected Got 3 1 3 4 5 0 10 1 2 3 6 4 5 6 7 8 30 0 1 2 3 4 5 6 7 8 9 45 1 2 3 6 4 5 6 7 8 30 0 1 2 3 4 5 6 7 8 9 45 2 5 5 4 3 5 6 7 8 9 35 4 5 6 15 5 6 7 8 9 35 4 5 6 15 3 -1 4 -5 10 -3 1 -1 0 1 2 2 -5 -4 -3 -2 -1 0 1 2 3 4 -5 -3 -3 -1 0 1 2 2 -5 -4 -3 -2 -1 0 1 2 3 4 -5 -3 -3 0 1 4 10 4 5 6 7 8 9 10 11 12 13 85 4 5 6 7 8 9 10 11 12 13 85 3 5 4 3 10 2 2 5 6 7 8 26 3 4 5 6 7 8 9 10 11 12 75 2 3 5 5 6 7 8 26 3 4 5 6 7 8 9 10 11 12 75 2 3 5 2 0 1 2 3 0 0 2 3 4 9 0 0 2 3 4 9 2 1 1 10 10 1 1 10 11 12 13 14 15 16 17 18 19 145 1 1 10 11 12 13 14 15 16 17 18 19 145 ??? 04/09/2021 Lista 3 - Estrutura de Repetição: Revisão da tentativa https://aprender3.unb.br/mod/quiz/review.php?attempt=850051&cmid=426983 8/36 Input Expected Got 4 0 1 -1 4 -5 10 -3 1 0 0 -1 0 1 2 2 -5 -4 -3 -2 -1 0 1 2 3 4 -5 -3 -3 0 0 -1 0 1 2 2 -5 -4 -3 -2 -1 0 1 2 3 4 -5 -3 -3 2 -10 5 -4 2 -10 -9 -8 -7 -6 -40 -4 -3 -7 -10 -9 -8 -7 -6 -40 -4 -3 -7 6 -1 1 -2 2 5 2 4 3 9 1 -10 2 -1 -1 -2 -1 -3 5 6 11 4 5 6 15 9 9 -10 -9 -19 -1 -1 -2 -1 -3 5 6 11 4 5 6 15 9 9 -10 -9 -19 2 10 10 15 3 10 11 12 13 14 15 16 17 18 19 145 15 16 17 48 10 11 12 13 14 15 16 17 18 19 145 15 16 17 48 5 -10 10 -9 10 -5 8 -4 10 -3 15 -10 -9 -8 -7 -6 -5 -4 -3 -2 -1 -55 -9 -8 -7 -6 -5 -4 -3 -2 -1 0 -45 -5 -4 -3 -2 -1 0 1 2 -12 -4 -3 -2 -1 0 1 2 3 4 5 5 -3 -2 -1 0 1 2 3 4 5 6 7 8 9 10 11 60 -10 -9 -8 -7 -6 -5 -4 -3 -2 -1 -55 -9 -8 -7 -6 -5 -4 -3 -2 -1 0 -45 -5 -4 -3 -2 -1 0 1 2 -12 -4 -3 -2 -1 0 1 2 3 4 5 5 -3 -2 -1 0 1 2 3 4 5 6 7 8 9 10 11 60 Passou em todos os teste! ??? 04/09/2021 Lista 3 - Estrutura de Repetição: Revisão da tentativa https://aprender3.unb.br/mod/quiz/review.php?attempt=850051&cmid=426983 9/36 Correto Notas para este envio: 1,00/1,00. ??? 04/09/2021 Lista 3 - Estrutura de Repetição: Revisão da tentativa https://aprender3.unb.br/mod/quiz/review.php?attempt=850051&cmid=426983 10/36 Questão 3 Correto Atingiu 1,00 de 1,00 Ímpares Consecutivos Leia um valor inteiro N que especi�ca a quantidade de casos de teste que vem a seguir. Cada caso de teste consiste de dois inteiros, X e Y. Você deve apresentar a soma de Y ímpares consecutivos a partir de X, inclusive o próprio X se ele for ímpar. Por exemplo: para a entrada 4 5, a saída deve ser 45, que é equivalente a: 5 + 7 + 9 + 11 + 13, para a entrada 7 4, a saída deve ser 40, que é equivalente a: 7 + 9 + 11 + 13. No �nal, imprima também a maior e a menor soma entre todos os casos de teste, e a média destas duas últimas somas (a maior e a menor). Entrada: A primeira linha de entrada é um inteiro N > 0 que é a quantidade de casos de teste que vem a seguir. Cada caso de teste consiste em uma linha contendo dois inteiros X e Y, onde Y > 0. Saída: Imprima a soma S dos Y consecutivos números ímpares a partir do valor X, para cada X e Y lidos. Imprima também a maior e a menor soma S. No �nal, imprima a média da maior e da menor soma com duas casas decimais após a vírgula, conforme exemplo abaixo. Comentário: As variáveis que serão usadas para armazenar a maior e a menor soma devem ser inicializadas antes das comparações. Uma maneira é considerar a primeira soma como um valorinicial para as variáveis que representam a maior e a menor soma. Dica: Este exercício pode ser resolvido com as estruturas for ou while. No caso da estrutura for, o Python possui o comando range( ), que fornece uma sequência de valores à variável do loop for. O comando range( ) tem parâmetros opcionais, como informar o valor inicial (inicio) da sequência e o passo da sequência (salto), range(inicio,�m,salto). O parâmetro �m indica a quantidade de valores da sequência. Exemplo: range(4) - a sequência será 0, 1, 2, 3; range(2,5) - a sequência será 2, 3, 4; e range(1,6,2) - a sequência será 1, 3, 5. For example: Input Result ??? 04/09/2021 Lista 3 - Estrutura de Repetição: Revisão da tentativa https://aprender3.unb.br/mod/quiz/review.php?attempt=850051&cmid=426983 11/36 Input Result 4 -2 5 3 3 -10 3 4 4 15 15 -21 32 32 -21 5.50 3 -5 1 -3 2 -10 3 -5 -4 -21 -4 -21 -12.50 2 -5 2 -5 4 -8 -8 -8 -8 -8.00 Answer: (penalty regime: 0, 0, 0, 1, 2, ... %) #ímpares consecutivos N = int(input()) #entrada é um inteiro N > 0 # que é a quantidade de casos de teste que vem a seguir. for i in range(N): x, y = input().split() x, y = int(x), int(y) if (x % 2 == 0): x += 1 soma = 0 1 2 3 4 5 6 7 8 ▼ 9 10 11 12 ▼ 13 14 15 ??? 04/09/2021 Lista 3 - Estrutura de Repetição: Revisão da tentativa https://aprender3.unb.br/mod/quiz/review.php?attempt=850051&cmid=426983 12/36 Input Expected Got 4 -2 5 3 3 -10 3 4 4 15 15 -21 32 32 -21 5.50 15 15 -21 32 32 -21 5.50 3 -5 1 -3 2 -10 3 -5 -4 -21 -4 -21 -12.50 -5 -4 -21 -4 -21 -12.50 2 -5 2 -5 4 -8 -8 -8 -8 -8.00 -8 -8 -8 -8 -8.00 1 -1 6 24 24 24 24.00 24 24 24 24.00 2 4 4 5 3 32 21 32 21 26.50 32 21 32 21 26.50 3 2 2 -10 5 -4 6 8 -25 12 12 -25 -6.50 8 -25 12 12 -25 -6.50 ??? 04/09/2021 Lista 3 - Estrutura de Repetição: Revisão da tentativa https://aprender3.unb.br/mod/quiz/review.php?attempt=850051&cmid=426983 13/36 Input Expected Got 4 -5 2 1 1 1 10 1 15 -8 1 100 225 225 -8 108.50 -8 1 100 225 225 -8 108.50 2 5 6 3 4 60 24 60 24 42.00 60 24 60 24 42.00 3 5 4 4 5 -5 4 32 45 -8 45 -8 18.50 32 45 -8 45 -8 18.50 4 -7 5 -8 5 5 4 4 5 -15 -15 32 45 45 -15 15.00 -15 -15 32 45 45 -15 15.00 3 49 5 30 2 15 9 265 64 207 265 64 164.50 265 64 207 265 64 164.50 5 -10 5 -6 8 -14 10 -16 20 10 9 -25 16 -40 80 171 171 -40 65.50 -25 16 -40 80 171 171 -40 65.50 ??? 04/09/2021 Lista 3 - Estrutura de Repetição: Revisão da tentativa https://aprender3.unb.br/mod/quiz/review.php?attempt=850051&cmid=426983 14/36 Input Expected Got 6 -11 6 -7 9 -24 10 -32 40 -7 5 -8 5 -36 9 -140 320 -15 -15 320 -140 90.00 -36 9 -140 320 -15 -15 320 -140 90.00 Passou em todos os teste! Correto Notas para este envio: 1,00/1,00. ??? 04/09/2021 Lista 3 - Estrutura de Repetição: Revisão da tentativa https://aprender3.unb.br/mod/quiz/review.php?attempt=850051&cmid=426983 15/36 Questão 4 Correto Atingiu 1,00 de 1,00 Disciplina: notas Faça um programa para ler 3 notas, e o número de faltas obtidas no semestre de cada um dos n alunos de uma disciplina. O valor de n (quantidade de alunos) deve ser informado pelo usuário. Calcular a nota �nal de cada aluno (dada pela média aritmética das 3 notas), e imprimir essa nota �nal com uma mensagem dizendo a situação �nal do aluno, ou seja, se o aluno foi “Aprovado”, �cou de “Exame” ou “Reprovado”: O aluno está Aprovado quando a sua nota �nal for maior ou igual a 5 E o número de faltas for menor ou igual a 16; O aluno �ca de Exame quando a sua nota �nal estiver entre 3 e 5 E o número de faltas for menor ou igual a 16; O aluno está Reprovado se a nota �nal for menor ou igual a 3 OU o número de faltas for maior que 16. O programa também deve calcular e apresentar a média aritmética das notas da disciplina e a quantidade de alunos aprovados. Entrada: Na primeira linha, um número inteiro n que é o número de alunos na turma, n > 0. Na segunda linha, uma sequência de 3 valores reais e 1 valor inteiro, que são as 3 notas dos alunos e quantidade de faltas, respectivamente. Considere que as entradas sempre serão válidas, ou seja, não é necessário fazer validação das entradas. Saída: Para cada aluno o programa deve imprimir, em uma única linha com separação por espaço, a média aritmética do aluno e, na sequência, sua situação (Aprovado, Exame ou Reprovado). A média deve ser impressa com 1 casa decimal após a vírgula. No �nal, o programa deve imprimir, em uma única linha com separação por espaço, primeiro a média da turma (com 1 casa decimal) e depois a quantidade de alunos aprovados. Caso nenhum aluno seja aprovado, apresente o valor 0 (zero). For example: Input Result 3 5 8 10 1 6 6 6 4 8 8 8 10 7.7 Aprovado 6.0 Aprovado 8.0 Aprovado 7.2 3 ??? 04/09/2021 Lista 3 - Estrutura de Repetição: Revisão da tentativa https://aprender3.unb.br/mod/quiz/review.php?attempt=850051&cmid=426983 16/36 Input Result 2 1 1 1 5 4.5 4.5 4.5 15 1.0 Reprovado 4.5 Exame 2.8 0 Answer: (penalty regime: 0, 0, 0, 1, 2, 3, ... %) # Disciplina: notas n = int(input()) cont = 0 somatorio = 0 for c in range(0, n): n1, n2, n3, x = input().split() n1, n2, n3, x = [float(n1), float(n2), float(n3), int( nota = (n1 + n2 + n3) / 3 somatorio += nota Input Expected Got 3 5 8 10 1 6 6 6 4 8 8 8 10 7.7 Aprovado 6.0 Aprovado 8.0 Aprovado 7.2 3 7.7 Aprovado 6.0 Aprovado 8.0 Aprovado 7.2 3 2 1 1 1 5 4.5 4.5 4.5 15 1.0 Reprovado 4.5 Exame 2.8 0 1.0 Reprovado 4.5 Exame 2.8 0 1 3 3 3 18 3.0 Reprovado 3.0 0 3.0 Reprovado 3.0 0 1 2 3 4 5 6 7 8 9 ▼ 10 11 12 13 14 15 ??? 04/09/2021 Lista 3 - Estrutura de Repetição: Revisão da tentativa https://aprender3.unb.br/mod/quiz/review.php?attempt=850051&cmid=426983 17/36 Input Expected Got 1 5 5 5 10 5.0 Aprovado 5.0 1 5.0 Aprovado 5.0 1 3 10 10 10 20 4 4 4 18 0 0 0 2 10.0 Reprovado 4.0 Reprovado 0.0 Reprovado 4.7 0 10.0 Reprovado 4.0 Reprovado 0.0 Reprovado 4.7 0 Passou em todos os teste! Correto Notas para este envio: 1,00/1,00. ??? 04/09/2021 Lista 3 - Estrutura de Repetição: Revisão da tentativa https://aprender3.unb.br/mod/quiz/review.php?attempt=850051&cmid=426983 18/36 Questão 5 Correto Atingiu 1,00 de 1,00 Precipitação e vazão em bacias hidrográ�cas Para �ns de estudos hidrológicos, uma Bacia Hidrográ�ca (BH) é considerada um conjunto de terras drenadas por um corpo d'água principal e seus a a�uentes. A precipitação, a cobertura �orestal e o tipo de solo/subsolo infuenciam na vazão dos rios de uma BH. Analise os dados e determine a BH com o maior índice pluviométrico anual, a BH com a estação de menor índice pluviométrico e a área média de uma BH. Entrada: Um número N que indica o número de linhas seguintes. Cada linha contém os seguintes dados: Nome da BH, área em Km da BH, índice pluviométrico no verão, no outono, no inverno e na primavera. Cada um dos 6 dados é separado por um espaço. Saída: Nome da BH com o maior índice pluviométrico anual (o total considerando as medidas das quatro estações). Nome da BH com a estação de menor índice pluviométrico (seja essa estação verão, outono, inverno ou primavera). A área média de uma BH em Km com base nas BHs informadas, com 2 casas decimais de precisão. Apresente as saídas em linhas separadas conforme exemplo. For example: Input Result 3 Taquara-Castelo 15000 100.0 110.0 120.0 130.0 CIC-CESPE 30000 200.0 150.0 250.0 150.0 Tim-Peters 35000 300.0 300.0 250.0 250.0 Tim-Peters Taquara-Castelo 26666.67 6 Bueno 99000 99.0 99.0 99.0 99.0 Chagas 147629 98.2 189.9 120.2 191.1 de-Paula 879860 114.2 212.9 211.4 299.9 Biazzuto 344112 100.9 158.7 202.6 200.9 Ribeiro 395650 90.6 150.0 121.4 234.2 Storm 967059 102.4 207.8 199.0 333.3 Storm Ribeiro 472218.33 22 ??? 04/09/2021 Lista 3 - Estrutura de Repetição: Revisão da tentativa https://aprender3.unb.br/mod/quiz/review.php?attempt=850051&cmid=426983 19/36 Answer: (penalty regime: 0, 0, 0, 1, 2, ... %) C = 0 L = 999 media = 0 M = 0 H = 0 N = int(input()) B = int(N) while (N > 0): nome,area,ind1,ind2,ind3,ind4 = input().split() nome = str(nome) area = float(area) ind1 = float(ind1) ind2 = float(ind2) ind3 = float(ind3) Input Expected Got 3 Taquara-Castelo 15000 100.0 110.0 120.0 130.0 CIC-CESPE 30000 200.0 150.0 250.0 150.0 Tim-Peters 35000 300.0 300.0 250.0 250.0 Tim-Peters Taquara-Castelo 26666.67 Tim-Peters Taquara-Castelo 26666.67 6 Bueno 99000 99.0 99.0 99.0 99.0 Chagas 147629 98.2 189.9 120.2 191.1 de-Paula 879860 114.2 212.9 211.4 299.9 Biazzuto 344112 100.9 158.7 202.6 200.9 Ribeiro 395650 90.6 150.0 121.4 234.2 Storm 967059 102.4 207.8 199.0 333.3 Storm Ribeiro 472218.33 Storm Ribeiro 472218.33 6 V 99000 9.0 9.0 9.0 999.0 M 55500 9.2 181.9 10.2 191.1 P 48005 14.2 21.9 21.4 29.9 L 61303 10.9 18.7 2.6 0.9 G 49501 9.6 15.0 12.4 23.2 S 610850 12.4 227.8 19.0 13.3 V L 154026.50 V L 154026.50 1 2 3 4 5 6 7 8 9 ▼ 10 11 12 13 14 15 ??? 04/09/2021 Lista 3 - Estrutura de Repetição: Revisão da tentativa https://aprender3.unb.br/mod/quiz/review.php?attempt=850051&cmid=426983 20/36 Input Expected Got 10 A 123456 10.0 10.0 10.0 10.0 B 123456 10.0 10.0 10.0 10.0 C 123456 10.0 10.0 10.0 10.0 D 123456 10.0 10.0 10.0 10.0 E 123456 10.0 10.0 10.0 10.0 F 123456 20.0 20.0 20.0 20.0 G 123456 20.0 20.0 20.0 20.0 H 123456 20.0 20.0 20.0 20.0 I 123456 20.0 20.0 20.0 20.0 J 123456 1.3 200.0 200.0 200.0 J J 123456.00 J J 123456.00 3 KK 11 123.0 321.0 159.0 951.0 JJ 12 -23.0 111.0 798.0 0.0 LL 999 251.1 123.2 465.2 541.2 KK JJ 340.67 KK JJ 340.67 1 abacia 1000000 61.154 654.21 548.6 0.16 abacia abacia 1000000.00 abacia abacia 1000000.00 4 jota 5 646.0 13.2 64.4 1.0 eme 4 555.5 555.5 123.3 155.1 ele 3 500.0 500.0 500.0 100.0 ene 8 400.0 400.0 400.0 455.0 ene jota 5.00 ene jota 5.00 5 id 3 153.1 536.3 865.4 43.1 le 6 315.1 1.53 64.3 468.5 py 15321 46.23 64.6 44.86 462.3 th 64523 541.63 748.5 465.3 46.5 on 463851 645.3 456.3 463.5 648.5 on le 108740.80 on le 108740.80 Passou em todos os teste! Correto Notas para este envio: 1,00/1,00. ??? 04/09/2021 Lista 3 - Estrutura de Repetição: Revisão da tentativa https://aprender3.unb.br/mod/quiz/review.php?attempt=850051&cmid=426983 21/36 Questão 6 Correto Atingiu 1,00 de 1,00 Jogo de Adivinhação Um pequeno jogo de adivinhação funciona da seguinte forma: você define um número n e chama um amigo, que deverá adivinhar o número escolhido. Faça um programa que peça um inteiro e então fique pedindo que um usuário tente adivinhá-lo até que acerte. Em cada tentativa o programa deve dizer se o chute foi maior ou menor que o número certo. Entrada: A primeira linha de entrada será o inteiro n, que deverá ser adivinhado. As próximas linhas serão os números chutados pelo jogador, que continuará chutando números até que adivinhe o número correto. Saída: Se o número digitado for menor que n apresente a mensagem: “O número correto é maior.”. Se o número digitado for maior que n apresente a mensagem: “O número correto é menor.”. Quando o usuário acertar o número imprima: “Parabéns! Você acertou.”. For example: Input Result 7 5 8 7 O número correto é maior. O número correto é menor. Parabéns! Você acertou. Answer: (penalty regime: 0, 0, 0, 1, 2, ... %) #adivinhação n_adv = int(input()) n = int(input()) while(n != n_adv): if(n < n_adv): 1 2 3 4 5 6 7 ▼ 8 9 ▼ ??? 04/09/2021 Lista 3 - Estrutura de Repetição: Revisão da tentativa https://aprender3.unb.br/mod/quiz/review.php?attempt=850051&cmid=426983 22/36 ( ) print('O número correto é maior.') elif(n > n_adv): print('O número correto é menor.') n = int(input()) Input Expected Got 7 5 8 7 O número correto é maior. O número correto é menor. Parabéns! Você acertou. O número correto é maior. O número correto é menor. Parabéns! Você acertou. 5 4 5 O número correto é maior. Parabéns! Você acertou. O número correto é maior. Parabéns! Você acertou. -2 -1 -3 -2 O número correto é menor. O número correto é maior. Parabéns! Você acertou. O número correto é menor. O número correto é maior. Parabéns! Você acertou. 7 6 8 7 O número correto é maior. O número correto é menor. Parabéns! Você acertou. O número correto é maior. O número correto é menor. Parabéns! Você acertou. -10 -1 -5 -10 O número correto é menor. O número correto é menor. Parabéns! Você acertou. O número correto é menor. O número correto é menor. Parabéns! Você acertou. 5 6 5 O número correto é menor. Parabéns! Você acertou. O número correto é menor. Parabéns! Você acertou. 0 10 -10 0 O número correto é menor. O número correto é maior. Parabéns! Você acertou. O número correto é menor. O número correto é maior. Parabéns! Você acertou. 10 11 12 ▼ 13 14 15 ??? 04/09/2021 Lista 3 - Estrutura de Repetição: Revisão da tentativa https://aprender3.unb.br/mod/quiz/review.php?attempt=850051&cmid=426983 23/36 Input Expected Got 20 10 15 19 20 O número correto é maior. O número correto é maior. O número correto é maior. Parabéns! Você acertou. O número correto é maior. O número correto é maior. O número correto é maior. Parabéns! Você acertou. 4 3 4 O número correto é maior. Parabéns! Você acertou. O número correto é maior. Parabéns! Você acertou. Passou em todos os teste! Correto Notas para este envio: 1,00/1,00. ??? 04/09/2021 Lista 3 - Estrutura de Repetição: Revisão da tentativa https://aprender3.unb.br/mod/quiz/review.php?attempt=850051&cmid=426983 24/36 Questão 7 Correto Atingiu 1,00 de 1,00 Fatorial e Fibonacci No ocidente, a sequência de Fibonacci apareceu pela primeira vez no livro Liber Abaci (1202) de Leonardo Fibonacci embora ela já tivesse sido descrita por gregos e indianos. Fibonacci considerou o crescimento de uma população idealizada (não realista biologicamente) de coelhos. Os números descrevem a quantidade de casais na população de coelhos depois de n meses se for suposto que: i) no primeiro mês nasce apenas um casal; ii) casais amadurecem sexualmente (e reproduzem-se) apenas após o segundo mês de vida; iii) não há problemas genéticos no cruzamento consaguíneo; iv) todos os meses, cada casal fértil dá a luz a um novo casal; e v) os coelhos nunca morrem. Sendo F a quantidade de casais após n meses, faça um programa que, dado um inteiro positivo n digitado pelo usuário, calcule o n-ésimo termo da sequência de Fibonacci usando a de�nição dada abaixo: F = 1 ; n = 1 ou n = 2; F = F + F ; n > 2 Imprima também o fatorial de n. Caso haja um número par de casais de coelhos após n meses, imprima também quantos novos casais de coelhos vão nascer no próximo mês. Entrada: Inteiro n > 0, onde n representa os meses que passaram. Saída: Será impresso na tela o número de casais após n meses e o valor de n! na mesma linha. Caso o número de casais de coelhos seja par, será impresso também, na mesma linha, quantos novos casais irão nascer no próximo mês. For example: Input Result n n n n - 1 n - 2 ??? 04/09/2021 Lista 3 - Estrutura de Repetição: Revisão da tentativa https://aprender3.unb.br/mod/quiz/review.php?attempt=850051&cmid=426983 25/36 Input Result 6 8 720 5 1 1 1 10 55 3628800 Answer: (penalty regime: 0, 0, 0, 1, 2, ... %) n = int(input()) #fatorial e fibonatti a, b = 1,1 for i in range (n-1): a, b = b, a+b fatorial = 1 while(n > 1): fatorial = fatorial * n n -= 1 if(a % 2 == 0): print(a, fatorial, b-a) else: print(a, fatorial) Input Expected Got 6 8 720 5 8 720 5 1 1 1 1 1 10 55 3628800 55 3628800 2 1 2 1 2 1 2 3 4 5 ▼ 6 7 8 ▼ 9 10 11 ▼ 12 13 ▼ 14 ??? 04/09/2021 Lista3 - Estrutura de Repetição: Revisão da tentativa https://aprender3.unb.br/mod/quiz/review.php?attempt=850051&cmid=426983 26/36 Input Expected Got 4 3 24 3 24 11 89 39916800 89 39916800 12 144 479001600 89 144 479001600 89 13 233 6227020800 233 6227020800 8 21 40320 21 40320 9 34 362880 21 34 362880 21 17 1597 355687428096000 1597 355687428096000 3 2 6 1 2 6 1 5 5 120 5 120 Passou em todos os teste! Correto Notas para este envio: 1,00/1,00. ??? 04/09/2021 Lista 3 - Estrutura de Repetição: Revisão da tentativa https://aprender3.unb.br/mod/quiz/review.php?attempt=850051&cmid=426983 27/36 Questão 8 Correto Atingiu 1,00 de 1,00 Sequência de Inteiros Faça um programa que peça ao usuário para digitar uma sequência de inteiros. O programa deve parar quando 0 for digitado, que será desconsiderado na sequência de números lidos. No �nal, você deve apresentar a quantidade de números lidos, o maior inteiro e a média aritmética simples dos inteiros. Entrada: A entrada consistirá de uma sequência de inteiros que será terminada quando o valor 0 for digitado, o qual não fará parte da sequência. É possível que a sequência não tenha nenhum número (nesse caso considere 0 como o maior número da sequência). Saída: Apresente x, y e z , um por linha, onde x, y e z representam, respectivamente, a quantidade de números, o maior número e a média dos inteiros da sequência com 2 casas decimais após a vírgula. For example: Input Result 3 3 -1 -2 -4 -5 0 6 3 -1.00 -1 -2 -3 -4 -5 0 5 -1 -3.00 2 2 -2 -2 0 4 2 0.00 ??? 04/09/2021 Lista 3 - Estrutura de Repetição: Revisão da tentativa https://aprender3.unb.br/mod/quiz/review.php?attempt=850051&cmid=426983 28/36 Answer: (penalty regime: 0, 0, 0, 1, 2, ... %) #sequencia de inteiros x = int(input()) m = x qnt = 0 soma = 0 #enqt x nao for 0, soma x com o valor anterior de soma #incrementa a qnt e verifica se x < o maior (m) x q terei #ler o próximo inteiro da sequencia while( x != 0): soma += x qnt += 1 if(x > m): Input Expected Got 3 3 -1 -2 -4 -5 0 6 3 -1.00 6 3 -1.00 -1 -2 -3 -4 -5 0 5 -1 -3.00 5 -1 -3.00 1 2 3 4 5 6 7 8 9 10 11 12 ▼ 13 14 15 ??? 04/09/2021 Lista 3 - Estrutura de Repetição: Revisão da tentativa https://aprender3.unb.br/mod/quiz/review.php?attempt=850051&cmid=426983 29/36 Input Expected Got 2 2 -2 -2 0 4 2 0.00 4 2 0.00 0 0 0 0.00 0 0 0.00 -5 -6 -7 -8 -9 -10 0 6 -5 -7.50 6 -5 -7.50 4 -4 4 -4 0 4 4 0.00 4 4 0.00 10 9 8 7 6 5 0 6 10 7.50 6 10 7.50 1 0 1 1 1.00 1 1 1.00 -12 6 6 24 -16 -8 0 6 24 0.00 6 24 0.00 ??? 04/09/2021 Lista 3 - Estrutura de Repetição: Revisão da tentativa https://aprender3.unb.br/mod/quiz/review.php?attempt=850051&cmid=426983 30/36 Input Expected Got 3 3 0 2 3 3.00 2 3 3.00 49 490 0 2 490 269.50 2 490 269.50 Passou em todos os teste! Correto Notas para este envio: 1,00/1,00. ??? 04/09/2021 Lista 3 - Estrutura de Repetição: Revisão da tentativa https://aprender3.unb.br/mod/quiz/review.php?attempt=850051&cmid=426983 31/36 Questão 9 Correto Atingiu 1,00 de 1,00 Figurinhas Raphael e Luiza são a�ccionados por �gurinhas de futebol. Ambos também têm o hábito de trocarem as �guras repetidas com seus amigos e certo dia pensaram em uma brincadeira diferente. Chamaram todos os amigos e propuseram o seguinte: com as �gurinhas em mãos, cada um tentava fazer uma troca com o amigo que estava mais perto seguindo a seguinte regra: cada um contava quantas �gurinhas tinha. Em seguida, eles tinham que dividir as �gurinhas de cada um em pilhas tal que todas as pilhas, entre ambos, tivessem o mesmo tamanho e esse fosse o maior possível. Então, cada um escolhia uma das pilhas de �gurinhas do amigo para receber. Por exemplo, se Raphael e Luiza fossem trocar as �gurinhas e tivessem respectivamente 8 e 12 �gurinhas, ambos dividiriam as suas quantidades em pilhas de 4 �gurinhas cada pois esse seria o maior tamanho de pilha comum a ambos. Assim, Raphael teria 2 pilhas e Luiza teria 3 pilhas, cada pilha contendo 4 �gurinhas. Em seguida, ambos escolheriam uma pilha do amigo para receber. Você pode fazer um programa para ajudá-los com essa brincadeira? Entrada: A entrada contém uma linha com 2 inteiros n (1 <= n <= 1000) e m (1 <= m <= 1000) indicando, respectivamente, a quantidade de �gurinhas que Raphael e Luiza têm para trocar. Saída: A saída será o tamanho máximo da pilha de �gurinhas que poderia ser trocada entre dois jogadores. For example: Input Result 8 12 4 9 27 9 259 111 37 4 9 1 Answer: (penalty regime: 0, 0, 0, 1, 2, ... %) #figurinhas1 ??? 04/09/2021 Lista 3 - Estrutura de Repetição: Revisão da tentativa https://aprender3.unb.br/mod/quiz/review.php?attempt=850051&cmid=426983 32/36 x1, x2 = input().split() x1, x2 = [int(x1), int(x2)] resto = 1 #por while #usando variavel auxiliar while (resto != 0): resto = x1 % x2 x1 = x2 x2 = resto print(x1) Input Expected Got 8 12 4 4 9 27 9 9 259 111 37 37 8 16 8 8 4 9 1 1 5 7 1 1 27 270 27 27 35 49 7 7 52 48 4 4 2 3 4 5 6 7 8 9 10 ▼ 11 12 13 14 15 ??? 04/09/2021 Lista 3 - Estrutura de Repetição: Revisão da tentativa https://aprender3.unb.br/mod/quiz/review.php?attempt=850051&cmid=426983 33/36 Input Expected Got 300 250 50 50 22 18 2 2 397 311 1 1 535 480 5 5 Passou em todos os teste! Correto Notas para este envio: 1,00/1,00. ??? 04/09/2021 Lista 3 - Estrutura de Repetição: Revisão da tentativa https://aprender3.unb.br/mod/quiz/review.php?attempt=850051&cmid=426983 34/36 Questão 10 Correto Atingiu 1,00 de 1,00 A Hipótese Falsa Raphael e Renata estão cursando Teoria dos Números juntos. Certo dia eles se deparam com a seguinte hipótese: "Para todo inteiro positivo n e m temos que n m + 1 é um número primo". Porém, eles percebem que essa hipótese é falsa, pois a Renata rapidamente nota que basta usar m = n - 2, assim: n m + 1 = n(n - 2) + 1 = (n -1) que não é primo. De modo que para n > 2, m pode ser n - 2, e ainda inteiro positivo, e o resultado da hipótese não é primo. Por exemplo, se n = 7, então 7 5 + 1 = 36. Para n <= 2, podemos usar m = n + 2 como outro contra-exemplo. Entretanto, Raphael quer impressionar a Renata apresentando não apenas qualquer contra-exemplo, mas sim o menor m tal que n m + 1 não seja primo para um dado n (por exemplo, para n = 7, poderíamos usar m = 1). Você pode escrever um programa para ajudá-lo, dado o inteiro n? Entrada: A entrada é o inteiro n (1 <= n <= 1000) da hipótese. Saída: Imprima na tela o menor m >= 1 tal que n m + 1 não seja um número primo. É garantido que esse m existe. Comentários: Para o primeiro exemplo abaixo, 3 1 + 1 = 4, a saída será 1. Para o segundo exemplo, 4 1 + 1 = 5, nós não podemos imprimir 1 porque 5 é primo. Porém, sim m = 2 pois 4 2 + 1 = 9, que não é primo. Para o terceiro exemplo, 10 2 + 1 = 21, imprimimos 2. Lembre-se que um número primo possui apenas 1 e o próprio número como divisores. Outro divisor resultará em um resto diferente de zero. For example: Input Result ⋅ ⋅ 2 ⋅ ⋅ ⋅ ⋅ ⋅ ⋅ ⋅ ??? 04/09/2021 Lista 3 - Estrutura de Repetição: Revisão da tentativa https://aprender3.unb.br/mod/quiz/review.php?attempt=850051&cmid=426983 35/36 Input Result 3 1 4 2 10 2 Answer: (penalty regime: 0, 0, 0, 1, 2, ... %) #HIPOTESE FAKE x = int(input()) m = 1 while( m <= 1000): i = 2 #testar primos while(i < x*m + 1): if((x*m + 1) % i == 0): print(m) m = 1001 break #parar primeiro loop i += 1 Input Expected Got 3 1 1 4 2 2 10 2 2 2 4 4 1 2 3 4 5 6 7 ▼ 8 9 10 ▼ 11 ▼ 12 13 14 15 ??? 04/09/2021 Lista 3 - Estrutura de Repetição: Revisão da tentativa https://aprender3.unb.br/mod/quiz/review.php?attempt=850051&cmid=426983 36/36 Input Expected Got 1 3 3 6 4 4 1000 1 1 16 2 2 36 4 4 70 2 2 228 3 3 600 4 4 576 3 3 Passou em todos os teste! Correto Notas para este envio: 1,00/1,00. ??? https://aprender3.unb.br/mod/resource/view.php?id=426982&forceview=1 https://aprender3.unb.br/mod/resource/view.php?id=426984&forceview=1
Compartilhar