$prime_numbers = @()
$prime_numbers += 2 #cheating?
for ($i = 3; $prime_numbers.Count -lt 100; $i=$i+2) { #no even number is a prime except 2
$is_prime = $true
$sqrt_i = [Math]::Sqrt($i)
for ($j = 2; $j -le $i - 1; $j++) {
if ($j -gt $sqrt_i) { #by definition if we reach the sqrt of the number, we can stop checking
Write-Verbose "$j is greater than the square root of $i, we found a prime!";
break
}
If ($i % $j -eq 0) {
Write-Verbose "$i isn't prime, it's divisible by $j or $j is greater than the square root of $i";
$is_prime = $false;
break
}
}
If ($is_prime -eq $true) { $prime_numbers += $i; Write-Host "Found a prime - $i! We have $($prime_numbers.Count) prime numbers..."; }
}
Write-Host "Found $($prime_numbers.Count) prime numbers - $($prime_numbers -join ', ')"
Return $prime_numbers
My attempt at the PowerShell challenge:
$prime_numbers = @() $prime_numbers += 2 #cheating? for ($i = 3; $prime_numbers.Count -lt 100; $i=$i+2) { #no even number is a prime except 2 $is_prime = $true $sqrt_i = [Math]::Sqrt($i) for ($j = 2; $j -le $i - 1; $j++) { if ($j -gt $sqrt_i) { #by definition if we reach the sqrt of the number, we can stop checking Write-Verbose "$j is greater than the square root of $i, we found a prime!"; break } If ($i % $j -eq 0) { Write-Verbose "$i isn't prime, it's divisible by $j or $j is greater than the square root of $i"; $is_prime = $false; break } } If ($is_prime -eq $true) { $prime_numbers += $i; Write-Host "Found a prime - $i! We have $($prime_numbers.Count) prime numbers..."; } } Write-Host "Found $($prime_numbers.Count) prime numbers - $($prime_numbers -join ', ')" Return $prime_numbers