Publicidade

Arquivado

Este tópico foi arquivado e está fechado para novas respostas.

milaBastos

Divisores de um numero

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

0

Compartilhar este post


Link para o post
Compartilhar em outros sites

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

0

Compartilhar este post


Link para o post
Compartilhar em outros sites

  • Próximos Eventos