quinta-feira, 15 de fevereiro de 2018

Project Euler 12

Esse problema tem como tema números triangulares e seus respectivos divisores. No caso, é preciso encontrar o número triangular que tenha mais do que 500 divisores.



### Calcula a quantidade de divisores de um número
Function Divisores([int]$n) {
    [int] $count = 2
    [int] $i = 2;
 
    While (($i * $i) -lt $n) { 
        If ( $n % $i -eq 0 ) { $count+=2 }
        $i++
    } 
    If (($i*$i) -eq $n) { $count++ }
 
    Return $count
}


## enesimo número triangular é dado pela fórmula ntri*(ntri+1)/2
[int]$ndiv = 1
For ([int]$ntri=2; $ndiv -lt 500; $ntri++) {
    $ndiv = Divisores($ntri*($ntri+1)/2)
}
$ntri-=1
$ntri = ($ntri*($ntri+1)/2)
Clear-Host
Write-Host "O valor do primeiro número triangular com mais de 500 divisores é:" $ntri


O valor do primeiro número triangular com mais de 500 divisores é: 76576500

Nenhum comentário:

Postar um comentário