<?xml version="1.0" encoding="UTF-8"?>
<rss version="2.0"
	xmlns:content="http://purl.org/rss/1.0/modules/content/"
	xmlns:wfw="http://wellformedweb.org/CommentAPI/"
	xmlns:dc="http://purl.org/dc/elements/1.1/"
	xmlns:atom="http://www.w3.org/2005/Atom"
	xmlns:sy="http://purl.org/rss/1.0/modules/syndication/"
	xmlns:slash="http://purl.org/rss/1.0/modules/slash/"
	>

<channel>
	<title>Linux, Java y programación &#187; BigInteger</title>
	<atom:link href="http://casidiablo.net/tag/biginteger/feed/" rel="self" type="application/rss+xml" />
	<link>http://casidiablo.net</link>
	<description>Blog de Java, Programación y Linux</description>
	<lastBuildDate>Fri, 11 Nov 2011 05:41:21 +0000</lastBuildDate>
	<language>en</language>
	<sy:updatePeriod>hourly</sy:updatePeriod>
	<sy:updateFrequency>1</sy:updateFrequency>
	<generator>http://wordpress.org/?v=3.2.1</generator>
		<item>
		<title>La clase BigInteger en Java</title>
		<link>http://casidiablo.net/numeros-primos-java-biginteger/</link>
		<comments>http://casidiablo.net/numeros-primos-java-biginteger/#comments</comments>
		<pubDate>Thu, 16 Apr 2009 18:14:15 +0000</pubDate>
		<dc:creator>Cristian</dc:creator>
				<category><![CDATA[ejercicios en java]]></category>
		<category><![CDATA[java]]></category>
		<category><![CDATA[programación]]></category>
		<category><![CDATA[BigInteger]]></category>
		<category><![CDATA[ejemplos]]></category>
		<category><![CDATA[ejercicios]]></category>

		<guid isPermaLink="false">http://casidiablo.net/?p=3021</guid>
		<description><![CDATA[BigInteger y BigDecimal son clases envoltura de los tipos primitivos int y double, sin embargo tienen ventajas sobre los tipos primitivos. Cuando necesites usar números grandes en Java la mejor opción es usar estas clases, ya que su limite de almacenamiento es el límite de memoria que tenga la máquina virtual de Java. Además, estas [...]]]></description>
			<content:encoded><![CDATA[
<div class="topsy_widget_data topsy_theme_blue" style="float: right;margin-left: 0.75em; background: url(data:,%7B%20%22url%22%3A%20%22http%253A%252F%252Fcasidiablo.net%252Fnumeros-primos-java-biginteger%252F%22%2C%20%22style%22%3A%20%22big%22%2C%20%22title%22%3A%20%22La%20clase%20BigInteger%20en%20Java%22%20%7D);"></div>
<p style="text-align: justify;"><code>BigInteger</code> y <code>BigDecimal</code> son clases envoltura de los tipos primitivos <code>int</code> y <code>double</code>, sin embargo tienen ventajas sobre los tipos primitivos. Cuando necesites usar números grandes en Java la mejor opción es usar estas clases, ya que su limite de almacenamiento es el límite de memoria que tenga la máquina virtual de Java.</p>
<p style="text-align: justify;">Además, estas clases proporcionan algunos métodos bastante interesantes, como las operaciones básicas o saber si el número es primo o no. Como siempre vamos con algunos ejemplos de apoyo:</p>
<h3 style="text-align: justify;">Operaciones básicas con la clase BigInteger</h3>
<p style="text-align: justify;">En el siguiente ejemplo se hace uso de los métodos <em>add</em>, <em>substract</em>, <em>multiply</em> y <em>divide</em> para realizar las operaciones básicas de suma, resta, multiplicación y división:<span id="more-3021"></span></p>
<pre class="brush: java; title: ; notranslate">import java.math.BigInteger;
public class PruebaOperacionesBasicas {
    public static void main(String args[]){
        BigInteger entero1 = BigInteger.valueOf(45);
        BigInteger entero2 = BigInteger.valueOf(15);
        //sumar con metodo add()
        String texto = &quot;La suma entre &quot;+entero1+
                &quot; y &quot;+entero2+&quot; es &quot;+entero1.add(entero2);
        //restar con metodo substract()
        texto += &quot;\nLa resta entre &quot;+entero1+
                &quot; y &quot;+entero2+&quot; es &quot;+entero1.subtract(entero2);
        //multiplicar con metodo multiply()
        texto += &quot;\nEl producto de &quot;+entero1+
                &quot; y &quot;+entero2+&quot; es &quot;+entero1.multiply(entero2);
        //dividir con metodo divide()
        texto += &quot;\nLa división de &quot;+entero1+
                &quot; y &quot;+entero2+&quot; entre &quot;+entero1.divide(entero2);
        System.out.println(texto);
    }
}</pre>
<h3 style="text-align: justify;">Números primos en Java</h3>
<p style="text-align: justify;">Este es un típico ejercicio que nos plantean en la universidad; se trata de hacer un listado de los primeros X números primos. En este caso <code>BigInteger</code> nos proporciona dos métodos muy interesantes: <em>isProbablePrime</em> y <em>nextProbablePrime</em>. El primero de ellos devuelve <code>true</code> si el número es probablemente primo (recordemos que es complejo saber si un número es o no primo cuando es demasiado grande); el segundo devuelve el próximo posible número primo a partir del valor que contenga el objeto.</p>
<p style="text-align: justify;">La siguiente aplicación usa el método <em>nextProbablePrime</em> para listar los primeros 2000 números primos:</p>
<pre class="brush: java; title: ; notranslate">import java.math.BigInteger;
public class PruebaNumerosPrimos {
    public static void main(String args[]){
        //iniciar el entero en cero
        BigInteger entero = BigInteger.ZERO;
        StringBuffer texto = new StringBuffer();
        for(int i = 0; i&lt;2000; i++){
            entero = entero.nextProbablePrime();
            texto.append(entero+&quot;\n&quot;);
            entero.add(BigInteger.ONE);
        }
        System.out.println(texto);
    }
}</pre>
<p style="text-align: justify;"><strong>Otros métodos interesantes</strong></p>
<p style="text-align: justify;">La clase <code>BigInteger</code> proporciona además otros métodos que nos ahorrarán bastante tiempo y líneas de código:</p>
<ul style="text-align: justify;">
<li><em>pow</em>, nos permite elevar un número a la potencia que deseemos.</li>
<li><em>comparteTo</em>, nos permite comparar si un BigInteger es mayor, igual o menor que otro.</li>
<li><em>min</em> y <em>max</em>, nos permiten saber cuál de los dos BigInteger es menor o mayor.</li>
</ul>
<p style="text-align: justify;">Como mencioné al principio, también es posible usar la clase <code>BigDecimal</code> que funciona de manera similar pero con números de coma flotante.</p>
</p>
<p><a class="descargacodigo tooltip" title="Descargar archivo ZIP con las fuentes del ejemplo" href="http://casidiablo.net/descargar/Pruebas+BigInteger"><strong>Descargar código fuente de ejemplos</strong></a></p>

]]></content:encoded>
			<wfw:commentRss>http://casidiablo.net/numeros-primos-java-biginteger/feed/</wfw:commentRss>
		<slash:comments>14</slash:comments>
		</item>
	</channel>
</rss>

