c ++ – Calling a recursive function with the decrement operator

I wrote a code to solve a problem of factorial sum. When I created the recursive function for the factorial calculation, I used the decrement operator "-" followed by the number in the function call, which generated an error in the answer. Can any one explain the reason for using the operator to modify the answer? Follow the code below.

#include 
#include 
using namespace std;

long long factorial inte (long long int num) {
if (num == 1 || num == 0) returns 1;
return num * factorial (- num);
}

int main () {
long long int M, N;
while (scanf ("% lli% lli", & M, & N)! = EOF)
factorial (M) + factorial (N) << endl;
returns 0;
}