diff --git a/src/main/java/mattrixwv/ProjectEuler/Problems/Problem1.java b/src/main/java/mattrixwv/ProjectEuler/Problems/Problem1.java index 3a7b71d..33afef0 100644 --- a/src/main/java/mattrixwv/ProjectEuler/Problems/Problem1.java +++ b/src/main/java/mattrixwv/ProjectEuler/Problems/Problem1.java @@ -1,11 +1,11 @@ //ProjectEuler/Java/Problem1.java //Matthew Ellison // Created: 03-01-19 -//Modified: 03-28-19 +//Modified: 06-15-20 //What is the sum of all the multiples of 3 or 5 that are less than 1000 //Unless otherwise listed all non-standard includes are my own creation and available from https://bibucket.org/Mattrixwv/JavaClasses /* - Copyright (C) 2019 Matthew Ellison + Copyright (C) 2020 Matthew Ellison This program is free software: you can redistribute it and/or modify it under the terms of the GNU Lesser General Public License as published by @@ -25,13 +25,13 @@ package mattrixwv.ProjectEuler.Problems; public class Problem1 extends Problem{ //The largest number to be checked - private static final Integer TOP_NUM = 999; + private static final int TOP_NUM = 999; public Problem1(){ super("What is the sum of all the multiples of 3 or 5 that are less than 1000"); } public void solve(){ - Integer sum = 0; //Holds the sum of all the correct elements + int sum = 0; //Holds the sum of all the correct elements //Check every number < 1000 to see if it is a multiple of 3 or 5. If it is add it to the running sum timer.start(); for(int cnt = 1;cnt <= TOP_NUM;++cnt){ @@ -44,11 +44,11 @@ public class Problem1 extends Problem{ } timer.stop(); //Save the results - result = "The sum of all numbers < " + TOP_NUM.toString() + 1 + " is " + sum.toString(); + result = "The sum of all numbers < " + (TOP_NUM + 1) + " is " + sum; } } /* Results: The sum of all numbers < 1000 is 233168 -It took 140.000 microseconds to solve this problem. +It took 22.000 microseconds to solve this problem. */ diff --git a/src/main/java/mattrixwv/ProjectEuler/Problems/Problem2.java b/src/main/java/mattrixwv/ProjectEuler/Problems/Problem2.java index 39b1d42..dda6410 100644 --- a/src/main/java/mattrixwv/ProjectEuler/Problems/Problem2.java +++ b/src/main/java/mattrixwv/ProjectEuler/Problems/Problem2.java @@ -1,11 +1,11 @@ //ProjectEuler/Java/Problem2.java //Matthew Ellison // Created: 03-01-19 -//Modified: 03-28-19 +//Modified: 06-15-20 //The sum of the even Fibonacci numbers less than 4,000,000 //Unless otherwise listed all non-standard includes are my own creation and available from https://bibucket.org/Mattrixwv/JavaClasses /* - Copyright (C) 2019 Matthew Ellison + Copyright (C) 2020 Matthew Ellison This program is free software: you can redistribute it and/or modify it under the terms of the GNU Lesser General Public License as published by @@ -39,9 +39,9 @@ public class Problem2 extends Problem{ timer.start(); //Get a list of all fibonacci numbers < 4,000,000 ArrayList fibNums = Algorithms.getAllFib(TOP_NUM); - Integer sum = 0; + int sum = 0; //Step through every element in the list checking if it is even - for(Integer num : fibNums){ + for(int num : fibNums){ //If the number is even add it to the running tally if((num % 2) == 0){ sum += num; @@ -57,5 +57,5 @@ public class Problem2 extends Problem{ /* Results: The sum of all even fibonacci numbers <= 3999999 is 4613732 -It took 551.500 microseconds to solve this problem. +It took 36.299 microseconds to solve this problem. */ diff --git a/src/main/java/mattrixwv/ProjectEuler/Problems/Problem3.java b/src/main/java/mattrixwv/ProjectEuler/Problems/Problem3.java index 3e7e8a1..f206d58 100644 --- a/src/main/java/mattrixwv/ProjectEuler/Problems/Problem3.java +++ b/src/main/java/mattrixwv/ProjectEuler/Problems/Problem3.java @@ -1,11 +1,11 @@ //ProjectEuler/Java/Problem3.java //Matthew Ellison // Created: 03-01-19 -//Modified: 03-28-19 +//Modified: 06-15-20 //The largest prime factor of 600851475143 //Unless otherwise listed all non-standard includes are my own creation and available from https://bibucket.org/Mattrixwv/JavaClasses /* - Copyright (C) 2019 Matthew Ellison + Copyright (C) 2020 Matthew Ellison This program is free software: you can redistribute it and/or modify it under the terms of the GNU Lesser General Public License as published by @@ -54,5 +54,5 @@ public class Problem3 extends Problem{ /* Results: The largest factor of the number 600851475143 is 6857 -It took 337.600 milliseconds to solve this problem. +It took 242.138 milliseconds to solve this problem. */ diff --git a/src/main/java/mattrixwv/ProjectEuler/Problems/Problem4.java b/src/main/java/mattrixwv/ProjectEuler/Problems/Problem4.java index 9de5926..c41d830 100644 --- a/src/main/java/mattrixwv/ProjectEuler/Problems/Problem4.java +++ b/src/main/java/mattrixwv/ProjectEuler/Problems/Problem4.java @@ -1,11 +1,11 @@ //ProjectEuler/Java/Problem4.java //Matthew Ellison // Created: 03-01-19 -//Modified: 03-28-19 +//Modified: 06-15-20 //Find the largest palindrome made from the product of two 3-digit numbers //Unless otherwise listed all non-standard includes are my own creation and available from https://bibucket.org/Mattrixwv/JavaClasses /* - Copyright (C) 2019 Matthew Ellison + Copyright (C) 2020 Matthew Ellison This program is free software: you can redistribute it and/or modify it under the terms of the GNU Lesser General Public License as published by @@ -29,9 +29,9 @@ import java.util.Collections; public class Problem4 extends Problem{ //The first number to be multiplied - private static final Integer START_NUM = 100; + private static final int START_NUM = 100; //The last number to be multiplied - private static final Integer END_NUM = 999; + private static final int END_NUM = 999; public Problem4(){ super("Find the largest palindrome made from the product of two 3-digit numbers"); @@ -43,13 +43,13 @@ public class Problem4 extends Problem{ ArrayList palindromes = new ArrayList(); //Start at the first 3-digit number and check every one up to the last 3-digit number - for(Integer firstNum = START_NUM;firstNum <= END_NUM;++firstNum){ + for(int firstNum = START_NUM;firstNum <= END_NUM;++firstNum){ //You can start at the location of the first number because everything before that has already been tested. (100 * 101 == 101 * 100) - for(Integer secondNum = firstNum;secondNum < END_NUM;++secondNum){ + for(int secondNum = firstNum;secondNum < END_NUM;++secondNum){ //Get the product - Integer product = firstNum * secondNum; + int product = firstNum * secondNum; //Change the number into a string - String productString = product.toString(); + String productString = Integer.toString(product); //Reverse the string String reverseString = new StringBuilder(productString).reverse().toString(); @@ -74,5 +74,5 @@ public class Problem4 extends Problem{ /* Results: The largest palindrome is 906609 -It took 47.490 milliseconds to solve this problem. +It took 14.919 milliseconds to solve this problem. */ diff --git a/src/main/java/mattrixwv/ProjectEuler/Problems/Problem5.java b/src/main/java/mattrixwv/ProjectEuler/Problems/Problem5.java index dda8279..7ade5e7 100644 --- a/src/main/java/mattrixwv/ProjectEuler/Problems/Problem5.java +++ b/src/main/java/mattrixwv/ProjectEuler/Problems/Problem5.java @@ -1,11 +1,11 @@ //ProjectEuler/Java/Problem5.java //Matthew Ellison // Created: 03-01-19 -//Modified: 03-28-19 +//Modified: 06-15-20 //What is the smallest positive number that is evenly divisible by all of the numbers from 1 to 20? //Unless otherwise listed all non-standard includes are my own creation and available from https://bibucket.org/Mattrixwv/JavaClasses /* - Copyright (C) 2019 Matthew Ellison + Copyright (C) 2020 Matthew Ellison This program is free software: you can redistribute it and/or modify it under the terms of the GNU Lesser General Public License as published by @@ -32,13 +32,13 @@ public class Problem5 extends Problem{ timer.start(); //Start at 20 because it must at least be divisible by 20. Increment by 2 because it must be an even number to be divisible by 2 - Boolean numFound = false; - Integer currentNum = 20; + boolean numFound = false; + int currentNum = 20; while((currentNum > 0) && (!numFound)){ //Start by assuming you found the number (because we throw a flag if we didn't find it) numFound = true; //Step through every number from 1-20 seeing if the current number is divisible by it - for(Integer divisor = 1;divisor <= 20;++divisor){ + for(int divisor = 1;divisor <= 20;++divisor){ //If it is not divisible then throw a flag and start looking at the next number if((currentNum % divisor) != 0){ numFound = false; @@ -55,11 +55,11 @@ public class Problem5 extends Problem{ timer.stop(); //Save the results - result = String.format("The smallest positive number evenly divisibly by all number 1-20 is " + currentNum.toString()); + result = String.format("The smallest positive number evenly divisibly by all number 1-20 is " + currentNum); } } /* Results: The smallest positive number evenly divisibly by all number 1-20 is 232792560 -It took 393.616 milliseconds to solve this problem. +It took 156.873 milliseconds to solve this problem. */