Pagini recente » Borderou de evaluare (job #1961771) | Borderou de evaluare (job #1829246) | Borderou de evaluare (job #950993) | Cod sursa (job #2608322) | Cod sursa (job #706110)
Cod sursa(job #706110)
#include<iostream>
#include<fstream>
#include <stdio.h>
#include <math.h>
using namespace std;
int main(void)
{
fstream f,g;
f.open("fact.in",ios::in);
g.open("fact.out",ios::out);
int n=0,i,imp1=25,pas=0,n2;
int putere5[15]={0},zero[15]={0};
putere5[1]=5;
for(i=2;i<=10;i++)
putere5[i]=putere5[i-1]*5;
zero[1]=1;
for(i=2;i<=10;i++)
zero[i]=putere5[i-1]+zero[i-1];
long long p=1;
f>>p;
if(p==0)
g<<1;
else
{
i=10;
while(p<zero[i])
i--;
n=putere5[i];
pas=zero[i];
while(pas<p)
{
n+=5;
if(n%25==0)
{
n2=n;
pas+=2;
n2/=25;
while(n2%5==0)
{
pas++;
n2/=5;
}
}
else
pas++;
}
if(pas==p)
g<<n;
else
g<<-1;
}
}