Do not work at the moment
rewrite the code using BigInteger otherwise long