Pagini recente » Cod sursa (job #1639036) | Cod sursa (job #744026) | Cod sursa (job #2250620) | Cod sursa (job #2569432) | Cod sursa (job #480246)
Cod sursa(job #480246)
#include <iostream>
using namespace::std;
int write(int nr)
{
FILE *fout;
fout = fopen("fact.out","w");
fprintf(fout,"%d",nr);
fclose(fout);
return 0;
}
int main()
{
FILE *fin;
bool good=true;
int p=0, count, n, total=0, nr, i, rez,z ;
//long long int n;
fin = fopen("fact.in", "r");
fscanf(fin,"%d", &p);
fclose(fin);
if(p==0)
{
write(1);
return 0;
}
//ex p = 10 => rez trebuie sa fie 45
rez = p*5; //aici da 50
nr = p;
i=5;
//z=1;
while(rez>=i*5) //p>=25 si nui mai mare ca 123
{
//nr += z;
//rez -= 5;
//z++;
nr += rez/(i*5);
i=i*5;
//rez+=5;
}
while(nr>p)
{
z=rez;
while(z%5==0)
{
nr--;
z/=5;
}
rez-=5;
}
if(nr==p) write(rez); else write(-1);
//printf("nr: %d, p: %d, rez: %d\n", nr, p, rez);
//printf("z: %d",z);
//if(i>1)
//{
// i/=5;
// if (p==i*5) good = false;
//}
//if(good) write(rez); else write(-1);
//acum avem nr=11 il scadem pina la p
//i=p;
//while(nr>p)
//{
// z=i;
// nr--;
// rez -= 5;//??
//
// while(z%5 ==0)
// {
// nr--;
// z/=5;
// }
// i--;
//}
//printf("nr: %d, p: %d, rez: %d", nr, p, rez);
// if(nr==p) write(rez);
// if(nr!=p) write(-1);
//while(total<p)
//{
// count=1;
// nr=i;
// while(nr%5 == 0)
// {
// count++;
// nr /= 5;
// };
// total += count;
// i++;
//}
// if(total==p) write(5*(i-1));
// if(total>p) write(-1);
return 0;
}