Mian-Chowla sequence: Difference between revisions

Add Swift
(→‎{{header|Perl 6}}: minor tweaks, slightly more efficient)
(Add Swift)
Line 1,534:
 
Computation time was 3.9831 seconds.</pre>
 
=={{header|Swift}}==
 
{{trans|Go}}
 
<lang Swift>public func mianChowla(n: Int) -> [Int] {
var mc = Array(repeating: 0, count: n)
var ls = [2: true]
var sum = 0
 
mc[0] = 1
 
for i in 1..<n {
var lsx = [Int]()
 
jLoop: for j in (mc[i-1]+1)... {
mc[i] = j
 
for k in 0...i {
sum = mc[k] + j
 
if ls[sum] ?? false {
lsx = []
continue jLoop
}
 
lsx.append(sum)
}
 
for n in lsx {
ls[n] = true
}
 
break
}
}
 
return mc
}
 
let seq = mianChowla(n: 100)
 
print("First 30 terms in sequence are: \(Array(seq.prefix(30)))")
print("Terms 91 to 100 are: \(Array(seq[90..<100]))")</lang>
 
{{out}}
 
<pre>First 30 terms in sequence are: [1, 2, 4, 8, 13, 21, 31, 45, 66, 81, 97, 123, 148, 182, 204, 252, 290, 361, 401, 475, 565, 593, 662, 775, 822, 916, 970, 1016, 1159, 1312]
Terms 91 to 100 are: [22526, 23291, 23564, 23881, 24596, 24768, 25631, 26037, 26255, 27219]</pre>
 
=={{header|VBScript}}==