Anonymous user
Palindromic gapful numbers: Difference between revisions
→Orders of Magnitude Faster: Direct Generation of Numbers
Line 450:
<lang ruby>def palindromicgapfuls(digit, count)
gapfuls = [] of UInt64 # array of palindromic gapfuls
(2..).select do |power|
base = 10_u64**(power >> 1) # value of middle digit position: 10..
Line 457:
next_lo = base * (digit + 1) # starting half for next digit: 20.. to 100..
this_lo.step(to: next_lo - 1, by: 10) do |front_half| # d_00; d_10; d_20; ...
left_half = front_half.to_s
if power.odd?
palindrome = (left_half +
10.times do
gapfuls << palindrome if palindrome.divisible_by?(
return gapfuls if gapfuls.size == count
palindrome += base11
end
else
palindrome = (left_half.rchop +
10.times do
gapfuls << palindrome if palindrome.divisible_by?(
return gapfuls if gapfuls.size == count
palindrome += base
Line 508:
<lang ruby>def palindromicgapfuls(digit, count)
gapfuls = [] of UInt64 # array of palindromic gapfuls
(2..).select do |power|
base = 10_u64**(power >> 1) # value of middle digit position: 10..
Line 520:
palindrome = (left_half + right_half).to_u64
10.times do
gapfuls << palindrome if palindrome.divisible_by?(
return gapfuls if gapfuls.size == count
palindrome += basep
|