Ir para conteúdo
Fórum Script Brasil

HarryPotter

Membros
  • Total de itens

    4
  • Registro em

  • Última visita

Sobre HarryPotter

HarryPotter's Achievements

0

Reputação

  1. Entende? a atribuiçao do valor digitado pelo usuario tem que estar dentro do loop.Do jeito que voce fez voce vai ler 2 variaveis apenas, não é um loop.
  2. Coloca tudo dentro de um while e no final do programa pergunta se deseja sair, se sim voce sai do loop, se não voce recomeça o codigo a partir do while. Resposta=raw_input("Digite sair para sair ").lower() while Resposta != "sair": n = int(raw_input('Digite o numero a ser testado: ')) teste = 0 for i in range(1,n): if n % i == 0: teste = teste + i if teste == n: print n, 'e um numero perfeito' else: print n, 'não e um numero perfeito' Resposta=raw_input("Digite sair para sair ").lower()
  3. Enfim, o professor passou a questão: 12. Calcule o MDC entre dois números lidos. e eu pensei: porque dois numeros?porque não n numeros? dai fiz isso ai. mas para responder a questao bastava: x=input("x= ") y=input("y= ") mdc=1 if x>y: maior=x else: maior=y for i in range(1,maior): if x%i==0 and y%i ==0: mdc=i print mdc
  4. Fatorar.py: #fatorar: colocar o numero em produto de numeros primos(forma fatorada) def fatorar(x): #simulado-> fatorar(6) A=[] #A=[] for y in range(2,x): #for y in range(2,6): y=[2,3,4,5] while x%y==0: #enquanto resto da divisao 6/y for 0: x=x/y #x=6/y-> 6/2,6/3,6/4,6/5-> 6/3=3 e 3/3=1, por isso usar while. A.append(y) #A=[6/2,6/3,3/3]=[3,2,1] if sum(A)==0: #se x fosse numero primo, a sua forma fatoriada seria ele mesmo. A.append(x) #se sum(A)==0 i.e, x%y nunca é 0, entao x é primo return A #retorna lista [3,2,1] MDCeMMC.py: # -*- coding: cp1252 -*- #Importar a Funçao fatorar do Modulo Fatorar.py from Fatorar import fatorar #Loop para reiniciar o programa apos terminado R=raw_input("Digite Sair para sair, ou qualquer outra coisa para continuar: ").lower() while R!="sair": #definir quantos numeros farao parte do calculo n=input("Quantos numeros? ") N=list(range(n)) #definir quais numeros for i in range(n): N[i]=input("Proximo Numero: ") #Fatorar esses numeros, salvando em C os valores antigos para uso posterior C=N N=map(fatorar,(N)) #Declarar variaveis a serem usadas com seus respectivos valores iniciais mdc=1 mmc=1 num=2 #Essa funçao ira obter o maior numero primo de todas as fatoraçoes e colocar #o resultado na variavel num for z in range(n): if N[z][-1]>num: num=N[z][-1] #Por exemplo, se C=[13,26], entao o maior numero primo é 13, e range vai de 2 a 13+1. #Agora as compostas de for sao usadas para obter a quantidade de vezes que um fator i #aparece em cada lista N[j], que é a forma fatorada do numero inserido pelo usuario. for i in range(2,num+1): cont=N[0].count(i) for j in range(n): if N[j].count(i)>0: if N[j].count(i)<cont: cont=N[j].count(i) else: cont=0 #se C=[15,30]=[[5*3],[5*3*2]], mdc=1*(5**1)*(3**1)=15 if i**cont>1: mdc*= i**cont #MMC #x= fatores em comum #Se nao houver fatores em comum x=1 #MMC= (a*b)/x X=1 #obter a*b, sendo a*b armazenado na variavel mmc for u in range(len(C)): mmc*=C[u] #Testar se o fator x aparece em todo N[y], isto é, se x é fator em comum de todos elementos fatorados for x in range(2,num+1): cont=1 for y in range(n): if N[y].count(x)==0: cont=0 #Se x for fator em comum, colocar o produto de todos x (todos os fatores em comum) em X if cont==1: X*=x #Dividir mmc por X, obtendo o M.M.C mmc=mmc/X print "O M.D.C é %d e o M.M.C é %d."%(mdc,mmc) R=raw_input("Digite Sair para sair, ou qualquer outra coisa para recomeçar o programa: ").lower()
×
×
  • Criar Novo...