aboutsummaryrefslogtreecommitdiff
path: root/challenge-138/abigail/ruby/ch-2.rb
blob: 16eeec5a8e79970c1e71aee3c8045360b150d86d (plain)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
#!/usr/bin/ruby

#
# See ../README.md
#
 
#
# Run as: ruby ch-2.rb < input-file
#

def can_split (target, number)
    if target >  number || target < 0 then
        return false
    end
    if target == number then
        return true
    end

    pow_10 = 10

    while pow_10 <= number do
        if can_split(target - (number % pow_10), number / pow_10) then
            return true
        end
        pow_10 *= 10
    end

    return false
end

ARGF . each_line do
    | number |
    number = number . to_i
    if number > 1 && can_split((Math . sqrt(number)) . to_i, number) then
        puts (1)
    else
        puts (0)
    end
end