So here is the issue. If any number below twelve is used, then the program works as expected. Any value above 12 gives me either a large number that is not a correct factorial or it gives me a number that is not correct and has a - sign at the front. I think it much have something to do with the variable type(as you can see I tried to have the function return a 'long' value but I don't think I did that right), but maybe my code is wrong in other places?