use for loop constructs
This commit is contained in:
parent
2fd9b940d5
commit
bfef2a0001
|
|
@ -40,8 +40,7 @@ func pow(base uint, exp uint) uint {
|
||||||
}
|
}
|
||||||
|
|
||||||
func updateMultiples(sieve []uint, x uint, p uint, n uint) {
|
func updateMultiples(sieve []uint, x uint, p uint, n uint) {
|
||||||
q := p
|
for q := p; ; q *= p {
|
||||||
for {
|
|
||||||
// sigma_x(a*b) = sigma_x(a) * sigma_x(b) if gcd(a,b) = 1
|
// sigma_x(a*b) = sigma_x(a) * sigma_x(b) if gcd(a,b) = 1
|
||||||
for i := 2 * q; i < n; i += q {
|
for i := 2 * q; i < n; i += q {
|
||||||
if i%(p*q) != 0 {
|
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))
|
// sigma_x(p^k) = p^(kx) + sigma_x(p^(k-1))
|
||||||
sieve[p*q] = pow(p*q, x) + sieve[q]
|
sieve[p*q] = pow(p*q, x) + sieve[q]
|
||||||
q *= p
|
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
|
||||||
Loading…
Reference in New Issue