Estou com um exercício da facul e não sei nem por onde comecar a fazer, será que vocês poderiam me dar uma ajuda ae?
seue abaixo:
Qual é o primeiro número triangular que possui mais de 500 divisores?
A seqüência dos números triangulares é gerada somando-se os números naturais. Assim, o sétimo
número triangular é 1 + 2 + 3 + 4 + 5 + 6 + 7 = 28. Os dez primeiros termos são:
1, 3, 6, 10, 15, 28, 36, 45, 55, …
Vamos fatorar os sete primeiros números triangulares:
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
Podemos ver que o sétimo número triangular, 28, é o primeiro número triangular que possui 5 divisores.
Qual é o primeiro número triangular que tem mais de 500 divisores?
Já deste uma analisada no seu algoritmo?
Fatorar um número não é algo que se faça em 2 segundos. Acho melhor ele estudar um pouco de álgebra e reduzir esse problema a achar qual é o menor número com 500 divisores e apartir dele achar o número triangular com 500 ou mais divisores.
Dessa maneira ele vai rodar o programa e vai ter a resposta no outro dia.
Cara, esse problema dos números tringulares te exige mto mais conhecimento matemático do que de programação. Fiz um algoritmo que é semi força bruta, consegui elaborar uns meios de ignorar alguns cálculos desnecessários, mas, mesmo assim ainda demora mtoooo.
Pra ti ter uma ideia, minha máquina (rodando o algoritmo nesse momento) ta nesse número triangular aqui 7556328 e ainda tem só 148 divisores se não me engano =P. Imagina o tamanho desse número que teu professor quer achar.
Nem sei se ainda estas interessado nesse tópico…Se quizer o código me avisa.
O menor número que tem mais de 500 divisores é 14414400, que é 2^6 . 3^2 . 5^2 . 7 . 11 . 13 e tem 504 divisores.
Infelizmente esse número não é triangular.
Uma forma de achar um número triangular com 504 divisores é procurar um número que tenha 6 fatores primos , elevados às potências 6, 2, 2, 1, 1, e 1 respectivamente, e que também seja triangular (ou seja, ele é da forma n(n+1)/2)
mais ou menos como se fosse o número 14414400.
[quote=JaVa_MaChInE]nao fui eu que fiz este algoritimo, ele é apenas um exemplop dado pelo professor, que faz parte do problema… de qualquer maneira obrigado…
tem outro aqui que não entendi muito bem mas parece mais simples, se alguem pudesse me ajudar também:
Encontrar a soma dos digitos de 100!
vlw[/quote]
A soma dos dígitos de 100! pode ser feita por força bruta; basta usar BigDecimal e calcular o fatorial da forma convencional (ou seja, 1 . 2 . 3 . … . 100).
Tava dando uma olhada nas explicações que nosso amigo moderador estava dando a respeito dos números triangulares e vou tentar fazer outro algoritmo, mas, não agora pq tô no trabalho.
[quote=maquiavelbona]Já deste uma analisada no seu algoritmo?
Fatorar um número não é algo que se faça em 2 segundos. Acho melhor ele estudar um pouco de álgebra e reduzir esse problema a achar qual é o menor número com 500 divisores e apartir dele achar o número triangular com 500 ou mais divisores.
Dessa maneira ele vai rodar o programa e vai ter a resposta no outro dia.
Até![/quote]
Você tem razão, eu consegui o número 76576500 aqui em casa com quase 20 minutos. Por outro lado, não entendi como que X! >= 500 resolve o problema.
[quote=JaVa_MaChInE]nao fui eu que fiz este algoritimo, ele é apenas um exemplop dado pelo professor, que faz parte do problema… de qualquer maneira obrigado…
tem outro aqui que não entendi muito bem mas parece mais simples, se alguem pudesse me ajudar também: