FactorialNumber.java 1.77 KB
Newer Older
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 59 60 61 62 63


import java.io.IOException;
import java.io.PrintWriter;
import java.math.BigInteger;

import javax.servlet.ServletException;
import javax.servlet.annotation.WebServlet;
import javax.servlet.http.HttpServlet;
import javax.servlet.http.HttpServletRequest;
import javax.servlet.http.HttpServletResponse;

/**
 * Servlet implementation class FactorialNumber
 */
@WebServlet("/factorial")
public class FactorialNumber extends HttpServlet {
	private static final long serialVersionUID = 1L;
       
    
	protected void doGet(HttpServletRequest req, HttpServletResponse resp) throws ServletException, IOException {
		// TODO Auto-generated method stub
		
		//generamos un PrintWriter para escribir en la pagina web
				PrintWriter pr = new PrintWriter(resp.getOutputStream());
				//generamos una cadena que indicara el error en caso de que pase
				String pgError = "<body><h1>El valor de n es invalido, ingrese un numero de 0 a 100</h1></body>";
				try {
					if(req.getParameter("n")!=null ) {
						int n = Integer.parseInt(req.getParameter("n"));
						//si no ocurrio ningun error entonces procedemos a calcular el factorial
						if(n>100 || n<0) {
							pr.write(pgError);
						}else {
							BigInteger factorial = BigInteger.valueOf(1);
							if(n!=0)
							{
								for (int i = 2; i <= n; i++) {									
									BigInteger j = BigInteger.valueOf(i);
									factorial=factorial.multiply(j);
								}
							}
							
						
							//dibujamos el html
							pr.write("<html>"
									+ "<body style=' text-align:center'><h1>El factorial de "+n+" es:</h1>"
									+"<p style='color:red'>"+factorial+"</p>"
									+"</body>"
									+ "</html>");
						}
					}else {
						pr.write(pgError);
					}
					
				} catch (Exception e) {
					pr.write(pgError);
				}
				
				pr.close();
	}

}