Cod sursa(job #1170793)

Utilizator adi.adnan10Adi Adnan adi.adnan10 Data 14 aprilie 2014 16:07:41
Problema Factorial Scor 95
Compilator cpp Status done
Runda Arhiva de probleme Marime 0.75 kb
// IAfactorial.cpp : Defines the entry point for the console application.
//
#include<stdio.h>
using namespace std;

int five(int x)
{
	int divisor = 5;
	int result=0;
	while (x / divisor)
	{
		result += (x / divisor);
		divisor *= 5;
	}
	return result;
}


int main()
{
	FILE *in, *out;
	in=fopen("fact.in", "r");
	out=fopen("fact.out", "w");
	int P, result = -1, left = 1, mid, right,k;
	bool find = false;
	fscanf(in, "%d", &P);
	right = 5 * P;
	while (left<=right)
	{
		mid = (left + right) / 2;
		k = five(mid);
		if (k == P)
		{
			right = mid - 1;
			result = mid;
		}
		else if (k < P)
			left = mid + 1;
		else if (k>P)
			right = mid - 1;
	}
	if (P == 0)result = -1;
	fprintf(out, "%d", result);
	return 0;
}