can someone explain this error?

using recursion im trying to get the factorial of any number.
this is my code:
# include <iostream>
using namespace std;
unsigned long factorial(unsigned int);
int main( )
{
int number;
cout<<"Please enter a number";
cin>>number;
cout << "Factorial of "<<number<<"is "<< factorial (number) << endl;
return 0;
}
unsigned long factorial ( unsigned int n );
{
if ( n == 0 || n == 1);
return 1;
else
return n * factorial (n -1);
}

i get this error:
1>f:\c++\recursion\recursion\factorial.cpp(13) : error C2447: '{' : missing function header (old-style formal list?)

can someone fill me in?
Extraneous semicolon on line 12
Also one on line 14.
Topic archived. No new replies allowed.