Clear-Host [int]$maxNumTerm = 0 [int]$numComMaisTerm = 0 $cache = -1000000..0 For ([int]$num=1; $num -lt 1000000; $num++) { [long]$curNum = $num [int]$curNumTerm = 1 #Write-Host "Numero atual: " $curNum While (($curNum -gt 1) -and ($cache[$curNum] -lt 0)) { If ($curNum % 2 -eq 0) { ## even $curNum = $curNum / 2 } Else { ## odd $curNum = 3 * $curNum + 1 } If ($cache[$curNum] -gt 0) { $curNumTerm+=$cache[$curNum] Break } Else { $curNumTerm++ } ##Write-Host $curNum } $cache[$num] = $curNumTerm If ($curNumTerm -gt $maxNumTerm) { $maxNumTerm = $curNumTerm $numComMaisTerm = $num Write-Host "O número que tem mais termos é $numComMaisTerm com $maxNumTerm" } }
A verdade é que não consegui performance satisfatória com esse código. Chega-se ao resultado, mas leva um bom tempo.
O número que tem mais termos é 2223 com 183 O número que tem mais termos é 2463 com 209 O número que tem mais termos é 2919 com 217 O número que tem mais termos é 3711 com 238 O número que tem mais termos é 6171 com 262 O número que tem mais termos é 10971 com 268 O número que tem mais termos é 13255 com 276 O número que tem mais termos é 17647 com 279 O número que tem mais termos é 23529 com 282 O número que tem mais termos é 26623 com 308 O número que tem mais termos é 34239 com 311 O número que tem mais termos é 35655 com 324 O número que tem mais termos é 52527 com 340 O número que tem mais termos é 77031 com 351 O número que tem mais termos é 106239 com 354 O número que tem mais termos é 142587 com 375 O número que tem mais termos é 156159 com 383 O número que tem mais termos é 216367 com 386 O número que tem mais termos é 230631 com 443 O número que tem mais termos é 410011 com 449 O número que tem mais termos é 511935 com 470 O número que tem mais termos é 626331 com 509 O número que tem mais termos é 837799 com 525
Nenhum comentário:
Postar um comentário