quarta-feira, 20 de dezembro de 2017

Project Euler 10

Project Euler - Problema 10
Calcular a soma dos números primos abaixo de 2000000.



Function testPrimo([Long]$n) {
    if (($n % 2) -eq 0) { return $false }
    [Long]$c = 3
    while (($c * $c) -le $n) {
        if (($n % $c) -eq 0) { return $false } 
        else { $c +=2 }
    }
    return $true;
}

Function _Main([Int32]$max) {
    [Long] $somaPrimos = 0
    [Long] $num = 3
 
    while ($num -lt $max) {
        if ((testPrimo $num) -eq $true) {
            $somaPrimos += $num;
        }
        $num += 2; #com exceção do 2, todo primo é ímpar
    }
    $somaPrimos += 2
    Write-Host "A soma dos primos abaixo de $max é: $somaPrimos"
}

Clear-Host
_Main 2000000


A soma dos primos abaixo de 2000000 é: 142913828922

Nenhum comentário:

Postar um comentário