Ir para o conteúdo

Publicidade

 Estatísticas do Fórum

  • 0 Usuários ativos

    0 membro(s), 0 visitante(s) e 0 membros anônimo(s)

Cursos Online iMasters
Foto:

Divisores de um numero

  • Por favor, faça o login para responder
1 resposta neste tópico

#1 milaBastos

milaBastos
  • Membros
  • 16 posts

Postado 18 outubro 2009 - 12:20

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

#2 _Isis_

_Isis_

    Waiting for a mad man with a blue box.

  • Moderadores
  • 2.525 posts

Postado 18 outubro 2009 - 22:24

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




Publicidade

/ins>