Cod sursa(job #523466)

Utilizator Antonius74Antonius Cezar Hegyes Antonius74 Data 18 ianuarie 2011 08:53:44
Problema Factorial Scor 100
Compilator cpp Status done
Runda Arhiva de probleme Marime 5.08 kb
#include <cstdio>
int main()
{
	
	freopen ("fact.in","r",stdin);
	freopen ("fact.out","w",stdout);
	
	int p,x=0,i=0,aux;
	scanf ("%d",&p);

	if (p<50000000)
		if (p<5000000)
			while (i<p)
			{
				x+=5;
				aux=x;
				while (aux%5==0)
				{
					aux/=5;
					i++;
				}
			}
		else
			if (p<10000000)
			{
				i=4999999;
				x=20000000;
				while (i<p)
				{
					x+=5;
					aux=x;
					while (aux%5==0)
					{
						aux/=5;
						i++;
					}
				}
			}
			else
				if (p<15000000)
				{
					i=9999999;
					x=40000005;
					while (i<p)
					{
						x+=5;
						aux=x;
						while (aux%5==0)
						{
							aux/=5;
							i++;
						}
					}
				}
				else
					if (p<20000000)
					{
						i=14999999;
						x=60000005;
						while (i<p)
						{
							x+=5;
							aux=x;
							while (aux%5==0)
							{
								aux/=5;
								i++;
							}
						}
					}
					else
						if (p<25000000)
						{
							i=19999999;
							x=80000010;
							while (i<p)
							{
								x+=5;
								aux=x;
								while (aux%5==0)
								{
									aux/=5;
									i++;
								}
							}
						}
						else
							if (p<30000000)
							{
								i=24999999;
								x=100000000;
								while (i<p)
								{
									x+=5;
									aux=x;
									while (aux%5==0)
									{
										aux/=5;
										i++;
									}
								}
							}
							else
								if (p<35000000)
								{
									i=29999999;
									x=120000005;
									while (i<p)
									{
										x+=5;
										aux=x;
										while (aux%5==0)
										{
											aux/=5;
											i++;
										}
									}
								}
								else
									if (p<40000000)
									{
										i=34999999;
										x=140000010;
										while (i<p)
										{
											x+=5;
											aux=x;
											while (aux%5==0)
											{
												aux/=5;
												i++;
											}
										}
									}
									else
										if (p<45000000)
										{
											i=39999999;
											x=160000010;
											while (i<p)
											{
												x+=5;
												aux=x;
												while (aux%5==0)
												{
													aux/=5;
													i++;
												}
											}
										}
										else
										{
											i=44999999;
											x=180000010;
											while (i<p)
											{
												x+=5;
												aux=x;
												while (aux%5==0)
												{
													aux/=5;
													i++;
												}
											}
										}
	else
		if (p<55000000)
		{
			i=49999999;
			x=200000005;
			while (i<p)
			{
				x+=5;
				aux=x;
				while (aux%5==0)
				{
					aux/=5;
					i++;
				}
			}
		}
		else
			if (p<60000000)
			{
				i=54999999;
				x=220000010;
				while (i<p)
				{
					x+=5;
					aux=x;
					while (aux%5==0)
					{
						aux/=5;
						i++;
					}
				}
			}
			else
				if (p<65000000)
				{
					i=59999999;
					x=240000015;
					while (i<p)
					{
						x+=5;
						aux=x;
						while (aux%5==0)
						{
							aux/=5;
							i++;
						}
					}
				}
				else
					if (p<70000000)
					{
						i=64999999;
						x=260000005;
						while (i<p)
						{
							x+=5;
							aux=x;
							while (aux%5==0)
							{
								aux/=5;
								i++;
							}
						}
					}
					else
						if (p<75000000)
						{
							i=69999999;
							x=280000010;
							while (i<p)
							{
								x+=5;
								aux=x;
								while (aux%5==0)
								{
									aux/=5;
									i++;
								}
							}
						}
						else
							if (p<80000000)
							{
								i=74999999;
								x=300000005;
								while (i<p)
								{
									x+=5;
									aux=x;
									while (aux%5==0)
									{
										aux/=5;
										i++;
									}
								}
							}
							else
								if (p<85000000)
								{
									i=79999999;
									x=320000010;
									while (i<p)
									{
										x+=5;
										aux=x;
										while (aux%5==0)
										{
											aux/=5;
											i++;
										}
									}
								}
								else
									if (p<90000000)
									{
										i=84999999;
										x=340000010;
										while (i<p)
										{
											x+=5;
											aux=x;
											while (aux%5==0)
											{
												aux/=5;
												i++;
											}
										}
									}
									else
										if (p<95000000)
										{
											i=89999999;
											x=360000010;
											while (i<p)
											{
												x+=5;
												aux=x;
												while (aux%5==0)
												{
													aux/=5;
													i++;
												}
											}
										}
										else
										{
											i=94999999;
											x=380000015;
											while (i<p)
											{
												x+=5;
												aux=x;
												while (aux%5==0)
												{
													aux/=5;
													i++;
												}
											}
										}
										
	if (i>p)
		printf ("-1 \n");
	else
		if (p==0)
			printf ("1 \n");
		else
			printf ("%d \n",x);
}