25 lines
630 B
Ruby
25 lines
630 B
Ruby
require 'set'
|
|
n, ts, mc, sums = 100, [], [1], Set.new
|
|
sums << 2
|
|
st = Time.now
|
|
for i in (1 .. (n-1))
|
|
for j in mc[i-1]+1 .. Float::INFINITY
|
|
mc[i] = j
|
|
for k in (0 .. i)
|
|
if (sums.include?(sum = mc[k]+j))
|
|
ts.clear
|
|
break
|
|
end
|
|
ts << sum
|
|
end
|
|
if (ts.length > 0)
|
|
sums = sums | ts
|
|
break
|
|
end
|
|
end
|
|
end
|
|
et = (Time.now - st) * 1000
|
|
s = " of the Mian-Chowla sequence are:\n"
|
|
puts "The first 30 terms#{s}#{mc.slice(0..29).join(' ')}\n\n"
|
|
puts "Terms 91 to 100#{s}#{mc.slice(90..99).join(' ')}\n\n"
|
|
puts "Computation time was #{et.round(1)}ms."
|