Pagini recente » Cod sursa (job #315941) | Cod sursa (job #116306) | Cod sursa (job #3160134) | Cod sursa (job #2927010) | Cod sursa (job #480235)
Cod sursa(job #480235)
#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=1;
z=1;
while(p>=i*5) //p>=25 si nui mai mare ca 123
{
//nr += z;
rez -= z*5;
z++;
i=i*5;
//rez+=5;
}
//printf("nr: %d, p: %d, rez: %d\n", nr, p, rez);
//printf("z: %d",z);
if(i>1)
{
i/=5;
z--;
if ((p>=i*5) && (p-z<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;
}