use for loop constructs

This commit is contained in:
filifa 2025-09-20 14:07:32 -04:00
parent 2fd9b940d5
commit bfef2a0001
1 changed files with 1 additions and 3 deletions

View File

@ -40,8 +40,7 @@ func pow(base uint, exp uint) uint {
}
func updateMultiples(sieve []uint, x uint, p uint, n uint) {
q := p
for {
for q := p; ; q *= p {
// sigma_x(a*b) = sigma_x(a) * sigma_x(b) if gcd(a,b) = 1
for i := 2 * q; i < n; i += q {
if i%(p*q) != 0 {
@ -55,7 +54,6 @@ func updateMultiples(sieve []uint, x uint, p uint, n uint) {
// sigma_x(p^k) = p^(kx) + sigma_x(p^(k-1))
sieve[p*q] = pow(p*q, x) + sieve[q]
q *= p
}
}