| Autor |
Mensagem |
![[Post New]](/templates/default/images/icon_minipost_new.gif) 25/04/2009 16:12:04
|
DavidUser
Virtual Machine Man
![[Avatar]](/images/avatar/f21aa9a67ef524410f718cff368a6ff2.jpg)
Membro desde: 07/03/2009 18:36:36
Mensagens: 539
Localização: Goiânia - GO
Offline
|
Problem
The sequence of triangle numbers is generated by adding the natural numbers. So the 7th triangle number would be 1 + 2 + 3 + 4 + 5 + 6 + 7 = 28. The first ten terms would be:
1, 3, 6, 10, 15, 21, 28, 36, 45, 55, ...
Let us list the factors of the first seven triangle numbers:
1: 1
3: 1,3
6: 1,2,3,6
10: 1,2,5,10
15: 1,3,5,15
21: 1,3,7,21
28: 1,2,4,7,14,28
We can see that 28 is the first triangle number to have over five divisors.
What is the value of the first triangle number to have over five hundred divisors?
é a lógica até funciona:
ainda diminui o esforço da máquina eliminando alguns números para evitar mais divisões inuteis mais ainda é muito lento:
Teste com número de fatores menos, vai ver que funciona.
This message was edited 9 times. Last update was at 26/04/2009 13:29:42
|
Cursando Engenharia da Computação na PUC-GO
Técnico em Redes de Dados pela FATESG.
"Você é o que você sabe e não o que você tem"
atletica |
|
|
 |
|
|
![[Post New]](/templates/default/images/icon_minipost_new.gif) 25/04/2009 18:33:39
|
jukkinha
Debugger
Membro desde: 02/05/2008 11:41:00
Mensagens: 66
Offline
|
Não entendi nada dos fors que você fez, mas se você buscar os divisores só até a raiz do número vai ficar muito mais rápido.
|
|
|
 |
![[Post New]](/templates/default/images/icon_minipost_new.gif) 25/04/2009 18:58:58
|
DavidUser
Virtual Machine Man
![[Avatar]](/images/avatar/f21aa9a67ef524410f718cff368a6ff2.jpg)
Membro desde: 07/03/2009 18:36:36
Mensagens: 539
Localização: Goiânia - GO
Offline
|
Nesse caso não funciona pois tenho de encontrar o número de divisores de um numero sendo eles primos ou não esse é o trabalho do método numeraDivisores() exemplo:
numeraDivisores(10) é diferente de numeraDivisores(100)
Divisores de 10 = 1,2,5,10
numeraDivisores(10)== 3 (não conto o 1)
Divisores de 100 = 1,2,5,10,20,25,50,100
numeraDivisores(100)== 9 (não conto o 1)
não tem como! O tal modo da raíz funciona quando é a divisão apenas por primos ai era fácil até podia usar o Crivo de Eratostenes.
|
Cursando Engenharia da Computação na PUC-GO
Técnico em Redes de Dados pela FATESG.
"Você é o que você sabe e não o que você tem"
atletica |
|
|
 |
![[Post New]](/templates/default/images/icon_minipost_new.gif) 25/04/2009 19:28:17
|
DavidUser
Virtual Machine Man
![[Avatar]](/images/avatar/f21aa9a67ef524410f718cff368a6ff2.jpg)
Membro desde: 07/03/2009 18:36:36
Mensagens: 539
Localização: Goiânia - GO
Offline
|
Viram minha observação. Pois alguem sabe como facilitar o encontro desses numeros triangulos ao invés do modo que utilizo ja no método principal.
o tempo de execeção passou de 18'59" nada de encontrar a resposta.
This message was edited 1 time. Last update was at 25/04/2009 19:31:28
|
Cursando Engenharia da Computação na PUC-GO
Técnico em Redes de Dados pela FATESG.
"Você é o que você sabe e não o que você tem"
atletica |
|
|
 |
![[Post New]](/templates/default/images/icon_minipost_new.gif) 25/04/2009 20:05:25
|
jukkinha
Debugger
Membro desde: 02/05/2008 11:41:00
Mensagens: 66
Offline
|
O número de divisores menores que a raiz é igual ao número de divisores maiores que a raiz.
|
|
|
 |
![[Post New]](/templates/default/images/icon_minipost_new.gif) 25/04/2009 20:14:58
|
DavidUser
Virtual Machine Man
![[Avatar]](/images/avatar/f21aa9a67ef524410f718cff368a6ff2.jpg)
Membro desde: 07/03/2009 18:36:36
Mensagens: 539
Localização: Goiânia - GO
Offline
|
jukkinha wrote:O número de divisores menores que a raiz é igual ao número de divisores maiores que a raiz.
NÃO! veja outros:
numero de divisores:
6 = 4
36 = 9
5 = 2
25 = 3
4 = 3
16 = 5
3 = 2
9 = 3
|
Cursando Engenharia da Computação na PUC-GO
Técnico em Redes de Dados pela FATESG.
"Você é o que você sabe e não o que você tem"
atletica |
|
|
 |
![[Post New]](/templates/default/images/icon_minipost_new.gif) 25/04/2009 20:15:28
|
DavidUser
Virtual Machine Man
![[Avatar]](/images/avatar/f21aa9a67ef524410f718cff368a6ff2.jpg)
Membro desde: 07/03/2009 18:36:36
Mensagens: 539
Localização: Goiânia - GO
Offline
|
NÃO TEM RELAÇÃO NENHUMA!!!!!!!!!!!!!!
|
Cursando Engenharia da Computação na PUC-GO
Técnico em Redes de Dados pela FATESG.
"Você é o que você sabe e não o que você tem"
atletica |
|
|
 |
![[Post New]](/templates/default/images/icon_minipost_new.gif) 25/04/2009 20:21:42
|
RaphaelSantos
JavaGuru
Membro desde: 05/11/2006 02:51:13
Mensagens: 201
Offline
|
DavidUser wrote:Nesse caso não funciona pois tenho de encontrar o número de divisores de um numero sendo eles primos ou não esse é o trabalho do método numeraDivisores() exemplo:
numeraDivisores(10) é diferente de numeraDivisores(100)
Divisores de 10 = 1,2,5,10
numeraDivisores(10)== 3 (não conto o 1)
Divisores de 100 = 1,2,5,10,20,25,50,100
numeraDivisores(100)== 9 (não conto o 1)
não tem como! O tal modo da raíz funciona quando é a divisão apenas por primos ai era fácil até podia usar o Crivo de Eratostenes.
no caso de 100 4 tb eh divisor...
bom ainda nao entendi muito bem sua duvida... vc poderia dizer qual sua duvida com outras palavras???
|
|
|
 |
![[Post New]](/templates/default/images/icon_minipost_new.gif) 25/04/2009 20:31:26
|
DavidUser
Virtual Machine Man
![[Avatar]](/images/avatar/f21aa9a67ef524410f718cff368a6ff2.jpg)
Membro desde: 07/03/2009 18:36:36
Mensagens: 539
Localização: Goiânia - GO
Offline
|
editei o código que agora ta enchuto.
O problema é tempo que demora a encontrar o resultado,
traduzindo o problema:
era para encontrar entre os numeros da soma da seqüência natura tipo 1+2=3, 1+2+3=6, 1+2+3+4=10;
3,6,10,...
o que possui mais de 500 divisores. Ele deu o exemplo com números menores:
1: 1
3: 1,3
6: 1,2,3,6
10: 1,2,5,10
15: 1,3,5,15
21: 1,3,7,21
28: 1,2,4,7,14,28
28 esse é o primeiro numero da sequência que possui 5 divisores.
agora é pra achar o com mais de 500 divisores.
teste tire o 500 e ponha 5 a resposta é 28!
|
Cursando Engenharia da Computação na PUC-GO
Técnico em Redes de Dados pela FATESG.
"Você é o que você sabe e não o que você tem"
atletica |
|
|
 |
![[Post New]](/templates/default/images/icon_minipost_new.gif) 25/04/2009 21:31:50
|
jukkinha
Debugger
Membro desde: 02/05/2008 11:41:00
Mensagens: 66
Offline
|
Não é pra encontrar o número de divisores da raiz... mas o número de divisores MENORES do que a raiz. -_-
|
|
|
 |
![[Post New]](/templates/default/images/icon_minipost_new.gif) 25/04/2009 21:39:49
|
DavidUser
Virtual Machine Man
![[Avatar]](/images/avatar/f21aa9a67ef524410f718cff368a6ff2.jpg)
Membro desde: 07/03/2009 18:36:36
Mensagens: 539
Localização: Goiânia - GO
Offline
|
6 = 1,2,3,6 - 4 divisores
36 = 1,2,3,4,6,9,12,18,36 - 8 divisores menores que a raiz
5 = 1,5 - 2 divisores
25 = 1,5,25 - 2 divisores menores que a raiz
4 = 1,2,4 - 3 divisores
16 = 1,2,4,8,16 - 4 divisores menores que a raiz
não deu pra intender oq vc disse!
|
Cursando Engenharia da Computação na PUC-GO
Técnico em Redes de Dados pela FATESG.
"Você é o que você sabe e não o que você tem"
atletica |
|
|
 |
![[Post New]](/templates/default/images/icon_minipost_new.gif) 25/04/2009 21:51:39
|
DavidUser
Virtual Machine Man
![[Avatar]](/images/avatar/f21aa9a67ef524410f718cff368a6ff2.jpg)
Membro desde: 07/03/2009 18:36:36
Mensagens: 539
Localização: Goiânia - GO
Offline
|
acho que entendi:
36:
1,2,3,5,[6],10,15,30,36
4 4
16:
1,2,[4],8,16
2 2
funciona com todos?
|
Cursando Engenharia da Computação na PUC-GO
Técnico em Redes de Dados pela FATESG.
"Você é o que você sabe e não o que você tem"
atletica |
|
|
 |
![[Post New]](/templates/default/images/icon_minipost_new.gif) 25/04/2009 23:50:48
|
Bruno Laturner
GUJ Expert
![[Avatar]](/images/avatar/5800ccd9514fd789d08e5831951aa6bc.jpg)
Membro desde: 18/02/2008 16:17:53
Mensagens: 3002
Offline
|
1- Procure os divisores primos menores que a raiz do número
2- Divida o número por esses divisores, e gere outra lista(conjunto) de divisores.
3- Divida esse novo conjunto pelos divisores originais, gere novos conjuntos e repita até conseguir os divisores originais.
Extra: Faça um cache desses números p/ ir mais rápido.
This message was edited 1 time. Last update was at 25/04/2009 23:52:57
|
A resposta acima foi achada em menos de 5 minutos no google.
The prisoner falls in love with his chains. --E.W. Dijkstra |
|
|
 |
![[Post New]](/templates/default/images/icon_minipost_new.gif) 26/04/2009 12:13:22
|
DavidUser
Virtual Machine Man
![[Avatar]](/images/avatar/f21aa9a67ef524410f718cff368a6ff2.jpg)
Membro desde: 07/03/2009 18:36:36
Mensagens: 539
Localização: Goiânia - GO
Offline
|
e quando a raiz não é inteira?
|
Cursando Engenharia da Computação na PUC-GO
Técnico em Redes de Dados pela FATESG.
"Você é o que você sabe e não o que você tem"
atletica |
|
|
 |
![[Post New]](/templates/default/images/icon_minipost_new.gif) 26/04/2009 12:29:29
|
Bruno Laturner
GUJ Expert
![[Avatar]](/images/avatar/5800ccd9514fd789d08e5831951aa6bc.jpg)
Membro desde: 18/02/2008 16:17:53
Mensagens: 3002
Offline
|
Calcule até a parte inteira dela.
|
A resposta acima foi achada em menos de 5 minutos no google.
The prisoner falls in love with his chains. --E.W. Dijkstra |
|
|
 |
|
|