Cod sursa(job #155089)

Utilizator Andreid91Ciocan Andrei Andreid91 Data 11 martie 2008 18:35:31
Problema Factorial Scor 0
Compilator cpp Status done
Runda Arhiva de probleme Marime 0.66 kb
#include<conio.h>
#include<fstream.h>

long p;

long calcul (int n)
	{
	long s;
	if (n%5==0) s=(n/5-1)*(n/5)/2*5+n/5;
		else s=(n/5-1)*(n/5)/2*5+(n/5)*(n%5+1);
	return s;
	}

void cauta (long &n,long a, long b)
	{
	long s;
	while (a+1<b && s!=p)
		{
		n=(a+b)/2;
		s=calcul(n);
		if (s<p) a=n;
			else if (s>p) b=n;
		}
	if (s!=p) if (calcul(a+1)==p) n=a+1;
			else if (calcul(a)==p) n=a;
				else n=-1;
	}

void main()
{
clrscr();
long n=100007;
fstream f("fact.in",ios::in);
f>>p;
if (p<=13) cauta(n,1,13);
	else if (p<=100007) cauta (n,1,p);
		else cauta (n,1,100007);
f.close();
fstream g("fact.out",ios::out);
g<<n;
g.close();
}