Chowla numbers: Difference between revisions
Content added Content deleted
Drkameleon (talk | contribs) (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 |
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 |
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> |
||