aboutsummaryrefslogtreecommitdiff
path: root/challenge-133/abigail/lua/ch-2.lua
blob: 45120a21b34b59dbec27246ecea17910b25a8445 (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
40
41
42
43
44
45
46
47
48
49
50
51
52
53
#!/opt/local/bin/lua

--
-- See ../README.md
--

--
-- Run as: lua ch-2.lua
--

local small_primes = {2, 3, 5, 7, 11, 13, 17, 19, 23, 29, 31}

function factorize (num)
    local out = {}
    for _, prime in ipairs (small_primes) do
        while num % prime == 0 do
            table . insert (out, prime)
            num = num / prime
        end
    end
    if num > 1 then
        table . insert (out, num)
    end
    return (out)
end


function digit_sum (numbers)
    local sum = 0
    for _, number in pairs (numbers) do
        while number > 0 do
            sum = sum + number % 10
            number = math . floor (number / 10)
        end
    end
    return (sum)
end


local number = 1
local count  = 0


while count < 10 do
    local factors = factorize (number)
    if #factors > 1 then
        if digit_sum ({number}) == digit_sum (factors) then
            print (number)
            count = count + 1
        end
    end
    number = number + 1
end