For count digits, you could just convert it to a String and check the length
Sum digits, convert to string then seperate each character with charAt then convert it to numbers in the return statement.
Average digits you can convert it to a String and then convert them back after taking them apart.
According to its structure I'd say that this is SEAL (<span>Software-Optimized Encryption Algorithm). It's difficult to describe how it works, because this kind of ciphers is very tricky. This algorithm uses 160 bit key and it uses 3 tables (R, S, T) to encode and decode.
I'll attach the image where you can see a process of creating a pseudo-random function:
</span>
Inaccurate and misleading