milaBastos 0 Denunciar post Postado Outubro 18, 2009 Olá pessoal... Estou tantendo resolver um problema há tempos... Sei que tenho que colocar aqui o código que já possuo,mas não tenho a minima ideia por onde começar: O problema é o seguinte: tenho que fazer um algoritmo que determine os divisores dos numeros 1,2,3,4,5,6,7,8,9,10,11, e 12. A lógica é a seguinte: para determinar os divisores de um dado numero temos que dividir este numero pelos fatore primos por exemplo...numero 12 :depois das divisões sucessivas até ficar 1 aparecerá 2 vezes o 2=(2^2)e uma vez o numero 3 = (3^1) Para concluir a atribuição de quantos divisores o 12 tem é necessario pegar cada expoente , acrescentar 1 a cada expoente e multiplicar o valor deles: Assim: 2 = expoente do 2 e 1 = expoente do 3 acima informado... (2+1)*(1+1)=6(numero de divisores) O problema é que não sei como colocar isto em portugol para rodar no programa visualg... Já tem um tempão que estou tentando... Agradeço... Abraço Compartilhar este post Link para o post Compartilhar em outros sites
_Isis_ 202 Denunciar post Postado Outubro 19, 2009 Um divisor não é necessariamente um fator primo. 6 divide 12 e não é primo. Dividir por números primos p/ procurar potência só adiciona complexidade ao código. Não sei como se escreve pro visualg, mas em Python dá p/ fazer assim: >>> for n in xrange(1,13): ... divisores = [ d for d in xrange(1,n+1) if n%d == 0] ... print "divisores de " + repr(n) + ":" + repr(divisores) ... divisores de 1:[1] divisores de 2:[1, 2] divisores de 3:[1, 3] divisores de 4:[1, 2, 4] divisores de 5:[1, 5] divisores de 6:[1, 2, 3, 6] divisores de 7:[1, 7] divisores de 8:[1, 2, 4, 8] divisores de 9:[1, 3, 9] divisores de 10:[1, 2, 5, 10] divisores de 11:[1, 11] divisores de 12:[1, 2, 3, 4, 6, 12] Outro detalhe: determinar os divisores é diferente de determinar QUANTOS divisores existem p/ um dado inteiro. >>> for n in xrange(1,13): ... divisores = len([ d for d in xrange(1,n+1) if n%d == 0]) ... print repr(n) + " possui " + repr(divisores) + " divisores" 1 possui 1 divisores 2 possui 2 divisores 3 possui 2 divisores 4 possui 3 divisores 5 possui 2 divisores 6 possui 4 divisores 7 possui 2 divisores 8 possui 4 divisores 9 possui 3 divisores 10 possui 4 divisores 11 possui 2 divisores 12 possui 6 divisores Compartilhar este post Link para o post Compartilhar em outros sites