Chowla numbers: Difference between revisions

Content added Content deleted
(Added Arturo implementation)
Line 963: Line 963:
while i * i <= n {
while i * i <= n {
if n % i == 0 {
if n % i == 0 {
var app = if i == (j = n / i) {
var app = if i == (j: n / i) {
0
0
} else {
} else {
Line 974: Line 974:
return sum
return sum
}
}

func sieve(limit) {
func sieve(limit) {
var c = Array.empty(limit)
var c = Array.empty(limit)
Line 990: Line 990:
return c
return c
}
}

for i in 1..37 {
for i in 1..37 {
print("chowla(\(i)) = \(chowla(i))")
print("chowla(\(i)) = \(chowla(i))")
}
}

var count = 1
var count = 1
var limit = 10000000
var limit = 10000000
var power = 100
var power = 100
var c = sieve(limit);
var c = sieve(limit)

var i = 3
var i = 3
while i < limit {
while i < limit {
Line 1,011: Line 1,011:
i += 2
i += 2
}
}

count = 0
count = 0
limit = 35000000;
limit = 35000000
var k = 2
var k = 2
var kk = 3
var kk = 3
var p
var p
i = 2
i = 2

while true {
while true {
if (p = k * kk) > limit {
if (p: k * kk) > limit {
break
break
}
}
Line 1,030: Line 1,030:
kk += k
kk += k
}
}

print("There are \(count) perfect numbers <= 35,000,000")</lang>
print("There are \(count) perfect numbers <= 35,000,000")</lang>