Cod sursa(job #1237791)
Utilizator | Dumitriu Sebastian sebinsteanu | Data | 4 octombrie 2014 20:09:20 |
---|---|---|---|
Problema | Factorial | Scor | 15 |
Compilator | cpp | Status | done |
Runda | Arhiva de probleme | Marime | 0.64 kb |
#include <iostream>
#include <fstream>
using namespace std;
ifstream in("fact.in");
ofstream out("fact.out");
int fn(int n)
{
for(int i=1;i<=n;++i)
if(n+1==i*6)
return 1;
return 0;
}
int fact(int n)
{
int r=fn(n);
if(n>0&&r==0)
{
int k,c=0,p=0,q=1,o=0;
c=n*5;
p=c/25;
if(fn(n+1)==1)
return c-p*5+5;
else
return c-p*5;
}
else if(n==0)
return 1;
else if(n<0||n>100000000||r==1)
return -1;
}
int main()
{
int n;
in>>n;
in.close();
out<<fact(n);
out.close();
return 0;
}