martes, 5 de abril de 2016

Problema 5 y 6 Proyecto Euler

Problema 5:

2520 es el número más pequeño que se puede dividir entre cada uno de los números del 1 al 10, sin ningún resto.


¿Cuál es el número positivo más pequeño que es divisible entre todos los números del 1 al 20?



Solución a partir de un ciclo for y un while:

1.- Se declaran dos variables, la primera (bandera) será tipo boolean iniciando en falso, y la segunda (i)será la que genere la serie del 2 - 20 (todos los números son divisibles entre 1, así que ahorramos esta división).

2.- Comienza ciclo for con la variable inicial, la cual tiene un valor de 2520 porque sabemos que es el primer número divisible entre 1-10, sería innecesario dividir entre números más bajos. Mientras bandera siga en falso se irá aumentando la variable inicial.

3.- El primer paso al entrar al ciclo es igualar la variable i en 2, que será el primer valor por el cual se dividirá.

4.- Inicia ciclo while, y se mantendrá mientras el residuo sea cero al dividir inicial entre i. La variable i irá aumentando en 1 mientras se cumpla la condición del residuo, y se pone un if para evaluar el valor de i, si éste es igual a 20, entonces bandera cambiará a verdadero e imprimirá inicial, siendo nuestro valor más pequeño divisible entre los números del 1-20. Al haber cambiado bandera, el ciclo for ser corta y termina la ejecución.


Código JAVA:

public class problemacinco {

    public static void main(String[] args) {

        boolean bandera = false;
        int i;
     
        for (long inicial = 2520l; !bandera; inicial++) {
            i=2;
            while(inicial%i==0){
                i++;
                if (i == 20){
                    bandera = true;
                    System.out.println("El valor más pequeño es: " + inicial);
                }
            }
        }
    }
}





Problema 6:

La suma de los cuadrados de los primeros diez números naturales es:
2 + 2 2 + ... + 10 2 = 385

El cuadrado de la suma de los primeros diez números naturales es:
(1 + 2 + ... + 10) 2 = 55 2 = 3,025

Por lo tanto la diferencia entre la suma de los cuadrados de los primeros diez números naturales y el cuadrado de la suma es 3025 - 385 = 2640.

Encuentra la diferencia entre la suma de los cuadrados de los primeros cien números naturales y el cuadrado de la suma.


Solución a partir de dos ciclos for y while:


1.- Se declaran las dos variables que guardarán el valor buscado, suma para la suma de los cuadrados y cuadrado para el cuadrado de la suma.

2.- Ciclo for que desplegará la serie del 1-10.

3.- Se guarda en suma el cuadrado del valor de la iteración, multiplicando el valor actual de serie por sí mismo, y sumando el valor actual de suma. La variable cuadrado irá almacenando la suma de serie, tomando el valor actual de serie más el valor actual de cuadrado.

4.- Al terminar el ciclo, se imprimen en pantalla los resultados, primero se muestra el valor final obtenido de suma. Después, se muestra el resultado de cuadrado (suma de todos los valores del 1-100) multiplicado por sí mismo (5050 * 5050). Finalmente, muestra la operación anterior pero añadiendo la resta del valor de suma para hallar la respuesta.


Código JAVA:

public class problemaseis {
    public static void main(String[] args) {
        int suma=0, cuadrado=0;
        for (int serie = 1; serie <= 100; serie++ ) {
            suma = serie * serie + suma;
            cuadrado = serie + cuadrado;
        }
        System.out.println("La suma de los cuadrados es: " + suma);
        System.out.println("La suma de los cuadrados es: " + (cuadrado*cuadrado));
        System.out.println("La diferencia es: " + ((cuadrado*cuadrado)-suma));
    }
}

No hay comentarios:

Publicar un comentario