Skip to content

Instantly share code, notes, and snippets.

@shelling
Created November 27, 2014 14:14

Revisions

  1. shelling created this gist Nov 27, 2014.
    23 changes: 23 additions & 0 deletions double-square-number.rb
    Original file line number Diff line number Diff line change
    @@ -0,0 +1,23 @@
    #!/usr/bin/env ruby

    def integer?(number)
    (number % 1) == 0
    end

    def double_square_number?(number)
    sqrt = Math.sqrt(number)
    if integer?(sqrt)
    [sqrt.to_i, 0]
    else
    sqrt.floor.downto(1) do |n|
    if integer?(m = Math.sqrt(number - n ** 2))
    return [n, m.to_i]
    end
    end
    return false
    end
    end

    for i in 1..104 do
    puts "#{i} => #{double_square_number?(i).inspect}"
    end