//Normal Factorial
function fact()
{
	var z=document.xx.aa.value;
	if(isNaN(z))
	{
		var cc=z.substring(0,(z.length-1));
		document.xx.aa.value=cc; 
	}
	var r=1;
	if(z<0)
	{
		alert("The n value should be greater than zero");
	}
	else 
	{
		if(z>170)
		{
			document.xx.bb.value="Infinity";
		}
		else
		{
			for(var i=z;i>=1;i--)
 			{
				r=r*i;
			}
  			document.xx.bb.value=Math.round((r)*1000)/1000;
		}	
	} 
}


//Addition Factorial
function fadd()
{
	var x=document.add.n1.value;
	if(isNaN(x))
	{
		var cc=x.substring(0,(x.length-1));
		document.add.n1.value=cc; 
		
	}
	var y=document.add.n2.value;
	if(isNaN(y))
	{
		var cc1=y.substring(0,(y.length-1));
		document.add.n2.value=cc1; 
	}

	var r=1;
	var s=1;
	if(x>170 && y>170)
	{
		document.add.n3.value="Infinity";
	}
	else
	{
		for(var i=x; i>=1; i--)
 		{
			r=r*i;
 		}
		for(var j=y; j>=1; j--)
 		{
			s=s*j;
 		}
		document.add.n3.value=Math.round((r+s)*1000)/1000;
	}	
}



//Factorial Subtraction
function fsub()
{
	var x=document.sub.n1.value;
	if(isNaN(x))
	{
		var cc=x.substring(0,(x.length-1));
		document.sub.n1.value=cc; 
	}
	var y=document.sub.n2.value;
	if(isNaN(y))
	{
		var cc1=y.substring(0,(y.length-1));
		document.sub.n2.value=cc1; 
	}

	var r=1;
	var s=1;
	if(x>170 && y>170)
	{
		document.sub.n3.value="Infinity";
	}
	else
	{
		for(var i=x; i>=1; i--)
 		{
			r=r*i;
 		}
		for(var j=y; j>=1; j--)
 		{
			s=s*j;
 		}
		document.sub.n3.value=Math.round((r-s)*1000)/1000;
	}	
}


//Factorial Multiplication
function fmul()
{
	var x=document.mul.n1.value;
	if(isNaN(x))
	{
		var cc=x.substring(0,(x.length-1));
		document.mul.n1.value=cc; 
	}
	var y=document.mul.n2.value;
	if(isNaN(y))
	{
		var cc1=y.substring(0,(y.length-1));
		document.mul.n2.value=cc1; 
	}

	var r=1;
	var s=1;
	if(x>170 && y>170)
	{
		document.mul.n3.value="Infinity";
	}
	else
	{
		for(var i=x; i>=1; i--)
 		{
			r=r*i;
 		}
		for(var j=y; j>=1; j--)
 		{
			s=s*j;
 		}
		document.mul.n3.value=Math.round((r*s)*1000)/1000;
	}	
}


//Factorial Division
function fdiv()
{
	var x=document.div.n1.value;
	
	if(isNaN(x))
	{
		var cc=x.substring(0,(x.length-1));
		document.div.n1.value=cc; 
	}
	var y=document.div.n2.value;
	if(isNaN(y))
	{
		var cc1=y.substring(0,(y.length-1));
		document.div.n2.value=cc1; 
	}
	var r=1;
	var s=1;
	if(x>170 && y>170)
	{
		document.div.n3.value="Infinity";
	}
	else
	{
		for(var i=x; i>=1; i--)
 		{
			r=r*i;
 		}
		for(var j=y; j>=1; j--)
 		{
			s=s*j;
 		}
		document.div.n3.value=Math.round((r/s)*1000)/1000;
	}	
}