Pagini recente » Cod sursa (job #1026271) | Cod sursa (job #1054176) | Cod sursa (job #358703) | Arhiva de probleme | Cod sursa (job #1878370)
#include <fstream>
using namespace std;
/*
P:
0! = 0
5! = 1
10! = 2
25! = 6
25 = 2 - 1 + 5 = 6
45 = 2 - 1 + 9 = 10
5 = 1 - 1 + 1 = 1
10 = 1 - 1 + 2 = 2
20
putere 5 - 1 + nr / 5 = P
*/
int putere(int nr)
{
long int p = 0;
while(nr % 5 != 0)
nr--;
while(nr)
{
nr /= 5;
p++;
}
return p-1;
}
int main()
{
ifstream in("fact.in");
ofstream out("fact.out");
int N, P;
in>>P;
int pas = 1<<27;
int r = 1<<27;
while(pas != 0)
{
if( (r - pas > 0) && putere(r - pas) - 1 + ( r - pas ) / 5 >= P)
r-=pas;
pas/=2;
}
if(P == 0)
out<<1;
else if(putere(r) - 1 + (r) / 5 == P)
out<<r;
else
out<<-1;
return 0;
}