Pagini recente » Cod sursa (job #1935895) | Cod sursa (job #171625) | Cod sursa (job #1750403) | Cod sursa (job #171591) | Cod sursa (job #155089)
Cod sursa(job #155089)
#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();
}