some image

Codes and Tags

Solucionando Problem 3 – Project Euler

Etiquetas: , Blog, Challenges No comments

Este problema tenia un poco más de picantico ya que empezamos a revisar conceptos de factores primos y unos cuantos numeros long. Basicamente lo que se pide es hallar el factor primo más grande del numero que dan.

Problema

The prime factors of 13195 are 5, 7, 13 and 29.  
What is the largest prime factor of the number 600851475143 ?

Para llegar a esta solución lo que se hace es hallar el primer factor del numero dado, al numero resultante se le halla nuevamente el factor hasta que el numero no tenga más factores primos. Este sera el factor primo más grande.

Solución

/**
 * 
 * The prime factors of 13195 are 5, 7, 13 and 29. * What is the largest prime
 * factor of the number 600851475143 ?
 * 
 * @author codesandtags
 * 
 */

public class Problem3 {

	public static void main(String[] args) {

		Problem3 solve = new Problem3();
		System.out.println("Largest prime factor of 600851475143 : "
				+ solve.largestPrimeFactor(600851475143l));

	}

	/**
	 * Recibe un numero al que se le halla el factor primo mas grande
	 * 
	 * @param num
	 * @return
	 */
	public long largestPrimeFactor(long num) {
		// Se itera hasta que el num deje de ser mayor que el primo
		for (long i = 1; i < num; i++) {
			if (num % i == 0) {
				num /= i;
				System.out.println("Prime : " + i + " : " + num);
				continue;
			}
		}
		// Finalmente se retorna el ultimo numero hallado como primo
		return num;
	}
}

About Edwin Torres

Related Posts

  • Logo Java
  • Logo Java
  • Logo Java
  • Project Euler Logo

Add your comment