Gol><>, 35 bytes
1AY:P*2,YlMR*YlR+:a(?B8R!
:a(?BaSD$
Extensive use of functions and implicit infinite loops.
Example full program & How it works
1AGIE;GN
2AY:P*2,YlMR*YlR+:a(?B8R!
:a(?BaSD$
<main program>
1AG Register row 1 as function G
IE; Take number input; halt on EOF
GN Call G and print the result as number
Repeat indefinitely
<function G>
2AY Register row 2 as function Y
:P*2, Sum of 1 to n
Y Call Y (break into digits)
lMR* Product
Y Call Y
lR+ Sum (an implicit zero is used)
:a(?B Return if the result is less than 10
8R! Skip initial 8 commands
Repeat indefinitely
<function Y>
:a(?B Return if the top is less than 10
aSD Divmod by 10; [... n] => [... n/10 n%10]
$ Swap top two, so the "div" goes to the top