mirror of
https://bitbucket.org/Mattrixwv/projecteulerjava.git
synced 2025-12-06 17:13:58 -05:00
Updated for sonarqube
This commit is contained in:
1
files/Problem22Names.txt
Normal file
1
files/Problem22Names.txt
Normal file
File diff suppressed because one or more lines are too long
@@ -22,6 +22,7 @@
|
||||
package com.mattrixwv.project_euler;
|
||||
|
||||
|
||||
import java.security.InvalidParameterException;
|
||||
import java.util.ArrayList;
|
||||
import java.util.Arrays;
|
||||
import java.util.List;
|
||||
@@ -42,6 +43,9 @@ public class ProblemSelection{
|
||||
41, 42, 43, 44, 45, 46, 47, 48, 49, 50,
|
||||
67));
|
||||
|
||||
private ProblemSelection(){
|
||||
}
|
||||
|
||||
//Returns the problem corresponding to the given problem number
|
||||
public static Problem getProblem(Integer problemNumber){
|
||||
Problem problem = null;
|
||||
@@ -97,6 +101,7 @@ public class ProblemSelection{
|
||||
case 49 : problem = new Problem49(); break;
|
||||
case 50 : problem = new Problem50(); break;
|
||||
case 67 : problem = new Problem67(); break;
|
||||
default: throw new InvalidParameterException();
|
||||
}
|
||||
return problem;
|
||||
}
|
||||
|
||||
@@ -50,7 +50,7 @@ public class Problem1 extends Problem{
|
||||
|
||||
|
||||
//Get the sum of the progressions of 3 and 5 and remove the sum of progressions of the overlap
|
||||
fullSum = sumOfProgression(3) + sumOfProgression(5) - sumOfProgression(3 * 5);
|
||||
fullSum = sumOfProgression(3) + sumOfProgression(5) - sumOfProgression(3 * 5.0);
|
||||
|
||||
|
||||
//Stop the timer
|
||||
@@ -67,7 +67,7 @@ public class Problem1 extends Problem{
|
||||
}
|
||||
//Gets the sum of the progression of the multiple
|
||||
private int sumOfProgression(double multiple){
|
||||
double numTerms = Math.floor((double)TOP_NUM / multiple); //This gets the number of multiples of a particular number that is < MAX_NUMBER
|
||||
double numTerms = Math.floor(TOP_NUM / multiple); //This gets the number of multiples of a particular number that is < MAX_NUMBER
|
||||
//The sum of progression formula is (n / 2)(a + l). n = number of terms, a = multiple, l = last term
|
||||
return (int)((numTerms / 2.0) * (multiple + (numTerms * multiple)));
|
||||
}
|
||||
|
||||
@@ -30,7 +30,7 @@ import com.mattrixwv.NumberAlgorithms;
|
||||
public class Problem10 extends Problem{
|
||||
//Variables
|
||||
//Static variables
|
||||
private static final long GOAL_NUMBER = 2000000 - 1; //The largest number to check for primes
|
||||
private static final long GOAL_NUMBER = 2000000L - 1L; //The largest number to check for primes
|
||||
//Instance variables
|
||||
private long sum; //The sum of all of the prime numbers
|
||||
|
||||
|
||||
@@ -55,26 +55,26 @@ public class Problem11 extends Problem{
|
||||
//Variables
|
||||
//Static variables
|
||||
//This is the grid of numbers that we will be working with
|
||||
private static final Integer[][] grid = {{8, 02, 22, 97, 38, 15, 00, 40, 00, 75, 04, 05, 07, 78, 52, 12, 50, 77, 91, 8},
|
||||
{49, 49, 99, 40, 17, 81, 18, 57, 60, 87, 17, 40, 98, 43, 69, 48, 04, 56, 62, 00},
|
||||
{81, 49, 31, 73, 55, 79, 14, 29, 93, 71, 40, 67, 53, 88, 30, 03, 49, 13, 36, 65},
|
||||
{52, 70, 95, 23, 04, 60, 11, 42, 69, 24, 68, 56, 01, 32, 56, 71, 37, 02, 36, 91},
|
||||
private static final Integer[][] grid = {{ 8, 2, 22, 97, 38, 15, 0, 40, 0, 75, 4, 5, 7, 78, 52, 12, 50, 77, 91, 8},
|
||||
{49, 49, 99, 40, 17, 81, 18, 57, 60, 87, 17, 40, 98, 43, 69, 48, 4, 56, 62, 0},
|
||||
{81, 49, 31, 73, 55, 79, 14, 29, 93, 71, 40, 67, 53, 88, 30, 3, 49, 13, 36, 65},
|
||||
{52, 70, 95, 23, 4, 60, 11, 42, 69, 24, 68, 56, 1, 32, 56, 71, 37, 2, 36, 91},
|
||||
{22, 31, 16, 71, 51, 67, 63, 89, 41, 92, 36, 54, 22, 40, 40, 28, 66, 33, 13, 80},
|
||||
{24, 47, 32, 60, 99, 03, 45, 02, 44, 75, 33, 53, 78, 36, 84, 20, 35, 17, 12, 50},
|
||||
{24, 47, 32, 60, 99, 3, 45, 2, 44, 75, 33, 53, 78, 36, 84, 20, 35, 17, 12, 50},
|
||||
{32, 98, 81, 28, 64, 23, 67, 10, 26, 38, 40, 67, 59, 54, 70, 66, 18, 38, 64, 70},
|
||||
{67, 26, 20, 68, 02, 62, 12, 20, 95, 63, 94, 39, 63, 8, 40, 91, 66, 49, 94, 21},
|
||||
{24, 55, 58, 05, 66, 73, 99, 26, 97, 17, 78, 78, 96, 83, 14, 88, 34, 89, 63, 72},
|
||||
{21, 36, 23, 9, 75, 00, 76, 44, 20, 45, 35, 14, 00, 61, 33, 97, 34, 31, 33, 95},
|
||||
{78, 17, 53, 28, 22, 75, 31, 67, 15, 94, 03, 80, 04, 62, 16, 14, 9, 53, 56, 92},
|
||||
{16, 39, 05, 42, 96, 35, 31, 47, 55, 58, 88, 24, 00, 17, 54, 24, 36, 29, 85, 57},
|
||||
{86, 56, 00, 48, 35, 71, 89, 07, 05, 44, 44, 37, 44, 60, 21, 58, 51, 54, 17, 58},
|
||||
{19, 80, 81, 68, 05, 94, 47, 69, 28, 73, 92, 13, 86, 52, 17, 77, 04, 89, 55, 40},
|
||||
{04, 52, 8, 83, 97, 35, 99, 16, 07, 97, 57, 32, 16, 26, 26, 79, 33, 27, 98, 66},
|
||||
{88, 36, 68, 87, 57, 62, 20, 72, 03, 46, 33, 67, 46, 55, 12, 32, 63, 93, 53, 69},
|
||||
{04, 42, 16, 73, 38, 25, 39, 11, 24, 94, 72, 18, 8, 46, 29, 32, 40, 62, 76, 36},
|
||||
{20, 69, 36, 41, 72, 30, 23, 88, 34, 62, 99, 69, 82, 67, 59, 85, 74, 04, 36, 16},
|
||||
{20, 73, 35, 29, 78, 31, 90, 01, 74, 31, 49, 71, 48, 86, 81, 16, 23, 57, 05, 54},
|
||||
{01, 70, 54, 71, 83, 51, 54, 69, 16, 92, 33, 48, 61, 43, 52, 01, 89, 19, 67, 48}};
|
||||
{67, 26, 20, 68, 2, 62, 12, 20, 95, 63, 94, 39, 63, 8, 40, 91, 66, 49, 94, 21},
|
||||
{24, 55, 58, 5, 66, 73, 99, 26, 97, 17, 78, 78, 96, 83, 14, 88, 34, 89, 63, 72},
|
||||
{21, 36, 23, 9, 75, 0, 76, 44, 20, 45, 35, 14, 0, 61, 33, 97, 34, 31, 33, 95},
|
||||
{78, 17, 53, 28, 22, 75, 31, 67, 15, 94, 3, 80, 4, 62, 16, 14, 9, 53, 56, 92},
|
||||
{16, 39, 5, 42, 96, 35, 31, 47, 55, 58, 88, 24, 0, 17, 54, 24, 36, 29, 85, 57},
|
||||
{86, 56, 0, 48, 35, 71, 89, 7, 5, 44, 44, 37, 44, 60, 21, 58, 51, 54, 17, 58},
|
||||
{19, 80, 81, 68, 5, 94, 47, 69, 28, 73, 92, 13, 86, 52, 17, 77, 4, 89, 55, 40},
|
||||
{ 4, 52, 8, 83, 97, 35, 99, 16, 7, 97, 57, 32, 16, 26, 26, 79, 33, 27, 98, 66},
|
||||
{88, 36, 68, 87, 57, 62, 20, 72, 3, 46, 33, 67, 46, 55, 12, 32, 63, 93, 53, 69},
|
||||
{ 4, 42, 16, 73, 38, 25, 39, 11, 24, 94, 72, 18, 8, 46, 29, 32, 40, 62, 76, 36},
|
||||
{20, 69, 36, 41, 72, 30, 23, 88, 34, 62, 99, 69, 82, 67, 59, 85, 74, 4, 36, 16},
|
||||
{20, 73, 35, 29, 78, 31, 90, 1, 74, 31, 49, 71, 48, 86, 81, 16, 23, 57, 5, 54},
|
||||
{ 1, 70, 54, 71, 83, 51, 54, 69, 16, 92, 33, 48, 61, 43, 52, 1, 89, 19, 67, 48}};
|
||||
//Instance variables
|
||||
private ArrayList<Integer> greatestProduct; //Holds the largest product we have found so far
|
||||
|
||||
@@ -128,67 +128,19 @@ public class Problem11 extends Problem{
|
||||
//Check the direction you are able to go
|
||||
//Right
|
||||
if(right){
|
||||
//Fill the product
|
||||
currentProduct.set(0, grid[row][col]);
|
||||
currentProduct.set(1, grid[row][col + 1]);
|
||||
currentProduct.set(2, grid[row][col + 2]);
|
||||
currentProduct.set(3, grid[row][col + 3]);
|
||||
|
||||
//If the current number's product is greater than the greatest product replace it
|
||||
if(ArrayAlgorithms.getProd(currentProduct) > ArrayAlgorithms.getProd(greatestProduct)){
|
||||
greatestProduct.set(0, currentProduct.get(0));
|
||||
greatestProduct.set(1, currentProduct.get(1));
|
||||
greatestProduct.set(2, currentProduct.get(2));
|
||||
greatestProduct.set(3, currentProduct.get(3));
|
||||
}
|
||||
checkRight(currentProduct, row, col);
|
||||
}
|
||||
//Down
|
||||
if(down){
|
||||
//Fill the product
|
||||
currentProduct.set(0, grid[row][col]);
|
||||
currentProduct.set(1, grid[row + 1][col]);
|
||||
currentProduct.set(2, grid[row + 2][col]);
|
||||
currentProduct.set(3, grid[row + 3][col]);
|
||||
|
||||
//If the current number's product is greater than the greatest product replace it
|
||||
if(ArrayAlgorithms.getProd(currentProduct) > ArrayAlgorithms.getProd(greatestProduct)){
|
||||
greatestProduct.set(0, currentProduct.get(0));
|
||||
greatestProduct.set(1, currentProduct.get(1));
|
||||
greatestProduct.set(2, currentProduct.get(2));
|
||||
greatestProduct.set(3, currentProduct.get(3));
|
||||
}
|
||||
checkDown(currentProduct, row, col);
|
||||
}
|
||||
//LeftDown
|
||||
if(left && down){
|
||||
//Fill the product
|
||||
currentProduct.set(0, grid[row][col]);
|
||||
currentProduct.set(1, grid[row + 1][col - 1]);
|
||||
currentProduct.set(2, grid[row + 2][col - 2]);
|
||||
currentProduct.set(3, grid[row + 3][col - 3]);
|
||||
|
||||
//If the current number's product is greater than the greatest product replace it
|
||||
if(ArrayAlgorithms.getProd(currentProduct) > ArrayAlgorithms.getProd(greatestProduct)){
|
||||
greatestProduct.set(0, currentProduct.get(0));
|
||||
greatestProduct.set(1, currentProduct.get(1));
|
||||
greatestProduct.set(2, currentProduct.get(2));
|
||||
greatestProduct.set(3, currentProduct.get(3));
|
||||
}
|
||||
checkLeftDown(currentProduct, row, col);
|
||||
}
|
||||
//RightDown
|
||||
if(right && down){
|
||||
//Fill the product
|
||||
currentProduct.set(0, grid[row][col]);
|
||||
currentProduct.set(1, grid[row + 1][col + 1]);
|
||||
currentProduct.set(2, grid[row + 2][col + 2]);
|
||||
currentProduct.set(3, grid[row + 3][col + 3]);
|
||||
|
||||
//If the current number's product is greater than the greatest product replace it
|
||||
if(ArrayAlgorithms.getProd(currentProduct) > ArrayAlgorithms.getProd(greatestProduct)){
|
||||
greatestProduct.set(0, currentProduct.get(0));
|
||||
greatestProduct.set(1, currentProduct.get(1));
|
||||
greatestProduct.set(2, currentProduct.get(2));
|
||||
greatestProduct.set(3, currentProduct.get(3));
|
||||
}
|
||||
checkRightDown(currentProduct, row, col);
|
||||
}
|
||||
}
|
||||
}
|
||||
@@ -200,6 +152,70 @@ public class Problem11 extends Problem{
|
||||
//Throw a flag to show the problem is solved
|
||||
solved = true;
|
||||
}
|
||||
//Check to the right of the current location
|
||||
private void checkRight(ArrayList<Integer> currentProduct, int row, int col){
|
||||
//Fill the product
|
||||
currentProduct.set(0, grid[row][col]);
|
||||
currentProduct.set(1, grid[row][col + 1]);
|
||||
currentProduct.set(2, grid[row][col + 2]);
|
||||
currentProduct.set(3, grid[row][col + 3]);
|
||||
|
||||
//If the current number's product is greater than the greatest product replace it
|
||||
if(ArrayAlgorithms.getProd(currentProduct) > ArrayAlgorithms.getProd(greatestProduct)){
|
||||
greatestProduct.set(0, currentProduct.get(0));
|
||||
greatestProduct.set(1, currentProduct.get(1));
|
||||
greatestProduct.set(2, currentProduct.get(2));
|
||||
greatestProduct.set(3, currentProduct.get(3));
|
||||
}
|
||||
}
|
||||
//Check below the current location
|
||||
private void checkDown(ArrayList<Integer> currentProduct, int row, int col){
|
||||
//Fill the product
|
||||
currentProduct.set(0, grid[row][col]);
|
||||
currentProduct.set(1, grid[row + 1][col]);
|
||||
currentProduct.set(2, grid[row + 2][col]);
|
||||
currentProduct.set(3, grid[row + 3][col]);
|
||||
|
||||
//If the current number's product is greater than the greatest product replace it
|
||||
if(ArrayAlgorithms.getProd(currentProduct) > ArrayAlgorithms.getProd(greatestProduct)){
|
||||
greatestProduct.set(0, currentProduct.get(0));
|
||||
greatestProduct.set(1, currentProduct.get(1));
|
||||
greatestProduct.set(2, currentProduct.get(2));
|
||||
greatestProduct.set(3, currentProduct.get(3));
|
||||
}
|
||||
}
|
||||
//Check the left-down diagonal from the current location
|
||||
private void checkLeftDown(ArrayList<Integer> currentProduct, int row, int col){
|
||||
//Fill the product
|
||||
currentProduct.set(0, grid[row][col]);
|
||||
currentProduct.set(1, grid[row + 1][col - 1]);
|
||||
currentProduct.set(2, grid[row + 2][col - 2]);
|
||||
currentProduct.set(3, grid[row + 3][col - 3]);
|
||||
|
||||
//If the current number's product is greater than the greatest product replace it
|
||||
if(ArrayAlgorithms.getProd(currentProduct) > ArrayAlgorithms.getProd(greatestProduct)){
|
||||
greatestProduct.set(0, currentProduct.get(0));
|
||||
greatestProduct.set(1, currentProduct.get(1));
|
||||
greatestProduct.set(2, currentProduct.get(2));
|
||||
greatestProduct.set(3, currentProduct.get(3));
|
||||
}
|
||||
}
|
||||
//Check the right-down diagonal from the current location
|
||||
private void checkRightDown(ArrayList<Integer> currentProduct, int row, int col){
|
||||
//Fill the product
|
||||
currentProduct.set(0, grid[row][col]);
|
||||
currentProduct.set(1, grid[row + 1][col + 1]);
|
||||
currentProduct.set(2, grid[row + 2][col + 2]);
|
||||
currentProduct.set(3, grid[row + 3][col + 3]);
|
||||
|
||||
//If the current number's product is greater than the greatest product replace it
|
||||
if(ArrayAlgorithms.getProd(currentProduct) > ArrayAlgorithms.getProd(greatestProduct)){
|
||||
greatestProduct.set(0, currentProduct.get(0));
|
||||
greatestProduct.set(1, currentProduct.get(1));
|
||||
greatestProduct.set(2, currentProduct.get(2));
|
||||
greatestProduct.set(3, currentProduct.get(3));
|
||||
}
|
||||
}
|
||||
//Reset the problem so it can be run again
|
||||
@Override
|
||||
public void reset(){
|
||||
@@ -211,7 +227,7 @@ public class Problem11 extends Problem{
|
||||
@Override
|
||||
public String getResult(){
|
||||
solvedCheck("result");
|
||||
return String.format("The greatest product of 4 numbers in a line is %d\nThe numbers are %s", ArrayAlgorithms.getProd(greatestProduct), greatestProduct.toString());
|
||||
return String.format("The greatest product of 4 numbers in a line is %d%nThe numbers are %s", ArrayAlgorithms.getProd(greatestProduct), greatestProduct.toString());
|
||||
}
|
||||
//Returns the numbers that were being searched
|
||||
public List<Integer> getNumbers(){
|
||||
|
||||
@@ -142,7 +142,7 @@ public class Problem13 extends Problem{
|
||||
//Constructor
|
||||
public Problem13(){
|
||||
super("Work out the first ten digits of the sum of the one-hundred 50-digit numbers");
|
||||
nums = new ArrayList<BigInteger>();
|
||||
nums = new ArrayList<>();
|
||||
reserveVectors();
|
||||
setNums();
|
||||
sum = BigInteger.ZERO;
|
||||
@@ -292,7 +292,7 @@ public class Problem13 extends Problem{
|
||||
@Override
|
||||
public String getResult(){
|
||||
solvedCheck("result");
|
||||
return String.format("The sum of all %d numbers is %d\nThe first 10 digits of the sum of the numbers is %s", nums.size(), sum, (sum.toString()).substring(0, 10));
|
||||
return String.format("The sum of all %d numbers is %d%nThe first 10 digits of the sum of the numbers is %s", nums.size(), sum, (sum.toString()).substring(0, 10));
|
||||
}
|
||||
//Returns the list of 50-digit numbers
|
||||
public List<BigInteger> getNumbers(){
|
||||
|
||||
@@ -31,7 +31,7 @@ package com.mattrixwv.project_euler.problems;
|
||||
public class Problem14 extends Problem{
|
||||
//Variables
|
||||
//Static variables
|
||||
private static final long MAX_NUM = 1000000 - 1; //This is the top number that you will be checking against the series
|
||||
private static final long MAX_NUM = 1000000L - 1L; //This is the top number that you will be checking against the series
|
||||
//Instance variables
|
||||
private long maxLength; //This is the length of the longest chain
|
||||
private long maxNum; //This is the starting number of the longest chain
|
||||
|
||||
@@ -85,7 +85,7 @@ public class Problem16 extends Problem{
|
||||
@Override
|
||||
public String getResult(){
|
||||
solvedCheck("result");
|
||||
return String.format("%d^%d = %s\nThe sum of the elements is %d", NUM_TO_POWER, POWER, num.toString(), sumOfElements);
|
||||
return String.format("%d^%d = %s%nThe sum of the elements is %d", NUM_TO_POWER, POWER, num.toString(), sumOfElements);
|
||||
}
|
||||
//Returns the number that was calculated
|
||||
public BigInteger getNumber(){
|
||||
|
||||
@@ -23,6 +23,7 @@
|
||||
package com.mattrixwv.project_euler.problems;
|
||||
|
||||
|
||||
import com.mattrixwv.exceptions.InvalidResult;
|
||||
import com.mattrixwv.project_euler.Unsolved;
|
||||
|
||||
|
||||
@@ -121,6 +122,7 @@ public class Problem17 extends Problem{
|
||||
case 4: numberString.append("forty"); break;
|
||||
case 3: numberString.append("thirty"); break;
|
||||
case 2: numberString.append("twenty"); break;
|
||||
default: throw new InvalidResult("tensPlace < 2");
|
||||
}
|
||||
num -= (tensPlace * 10);
|
||||
//If there is something left in the number you will need a dash to separate the tens and ones place
|
||||
@@ -142,6 +144,7 @@ public class Problem17 extends Problem{
|
||||
case 2: numberString.append("twelve"); break;
|
||||
case 1: numberString.append("eleven"); break;
|
||||
case 0: numberString.append("ten"); break;
|
||||
default: throw new InvalidResult("onesPlace > 9");
|
||||
}
|
||||
//If this was hit the number was completed
|
||||
num = 0;
|
||||
@@ -159,6 +162,7 @@ public class Problem17 extends Problem{
|
||||
case 3: numberString.append("three"); break;
|
||||
case 2: numberString.append("two"); break;
|
||||
case 1: numberString.append("one"); break;
|
||||
default: throw new InvalidResult("onesPlace > 9");
|
||||
}
|
||||
//If this was hit the number was completed
|
||||
num = 0;
|
||||
|
||||
@@ -50,24 +50,33 @@ public class Problem18 extends Problem{
|
||||
//Structures
|
||||
//Used to keep track of where the best location came from
|
||||
protected static class Location{
|
||||
public int xLocation;
|
||||
public int yLocation;
|
||||
public int total;
|
||||
private int xLocation;
|
||||
private int yLocation;
|
||||
private int total;
|
||||
//Used originally for debugging so I could trace the path backwards
|
||||
public boolean fromRight;
|
||||
private boolean fromRight;
|
||||
Location(int x, int y, int t, boolean r){
|
||||
xLocation = x;
|
||||
yLocation = y;
|
||||
total = t;
|
||||
fromRight = r;
|
||||
}
|
||||
|
||||
public void setXLocation(int xLocation){ this.xLocation = xLocation; }
|
||||
public int getXLocation(){ return xLocation; }
|
||||
public void setYLocation(int yLocation){ this.yLocation = yLocation; }
|
||||
public int getYLocation(){ return yLocation; }
|
||||
public void setTotal(int total){ this.total = total; }
|
||||
public int getTotal(){ return total; }
|
||||
public void setFromRight(boolean fromRight){ this.fromRight = fromRight; }
|
||||
public boolean getFromRight(){ return fromRight; }
|
||||
}
|
||||
|
||||
//Variables
|
||||
//Static variables
|
||||
protected static ArrayList<ArrayList<Integer>> list; //The list to hold the numbers in
|
||||
static{
|
||||
list = new ArrayList<ArrayList<Integer>>(
|
||||
list = new ArrayList<>(
|
||||
Arrays.asList(
|
||||
new ArrayList<Integer>(Arrays.asList(75)),
|
||||
new ArrayList<Integer>(Arrays.asList(95, 64)),
|
||||
@@ -218,7 +227,7 @@ public class Problem18 extends Problem{
|
||||
|
||||
StringBuilder results = new StringBuilder();
|
||||
//Save the trail the algorithm took
|
||||
ArrayList<Location> trail = new ArrayList<Location>();
|
||||
ArrayList<Location> trail = new ArrayList<>();
|
||||
trail.add(foundPoints.get(foundPoints.size() - 1));
|
||||
boolean top = false;
|
||||
while(!top){
|
||||
@@ -231,7 +240,7 @@ public class Problem18 extends Problem{
|
||||
System.exit(1);
|
||||
}
|
||||
Iterator<Location> it = foundPoints.iterator();
|
||||
Location tempLoc = null;
|
||||
Location tempLoc = new Location(0, 0, 0, false);
|
||||
for(int cnt = 0;cnt < loc;++cnt){
|
||||
tempLoc = it.next();
|
||||
}
|
||||
|
||||
@@ -33,12 +33,13 @@ A leap year occurs on any year evenly divisible by 4, but not on a century unles
|
||||
*/
|
||||
package com.mattrixwv.project_euler.problems;
|
||||
|
||||
import com.mattrixwv.exceptions.InvalidResult;
|
||||
|
||||
public class Problem19 extends Problem{
|
||||
//Variables
|
||||
//Static variables
|
||||
//An easier way to signal day of the week
|
||||
private enum DAYS{SUNDAY, MONDAY, TUESDAY, WEDNESDAY, THURSDAY, FRIDAY, SATURDAY, NUMBER_OF_DAYS, ERROR};
|
||||
private enum DAYS{SUNDAY, MONDAY, TUESDAY, WEDNESDAY, THURSDAY, FRIDAY, SATURDAY, NUMBER_OF_DAYS, ERROR}
|
||||
private static final int START_YEAR = 1901; //The first year we are going to test
|
||||
private static final int END_YEAR = 2000; //The last year we are going to test
|
||||
//Instance variables
|
||||
@@ -69,7 +70,7 @@ public class Problem19 extends Problem{
|
||||
for(int month = 1;month <= 12;++month){
|
||||
DAYS day = getDay(month, 1, year);
|
||||
if(day == DAYS.ERROR){
|
||||
System.out.println("There was an error with the day");
|
||||
throw new InvalidResult("There was an error with the day");
|
||||
}
|
||||
else if(day == DAYS.SUNDAY){
|
||||
++totalSundays;
|
||||
@@ -128,6 +129,7 @@ public class Problem19 extends Problem{
|
||||
numDays += 28;
|
||||
}
|
||||
break;
|
||||
default: throw new InvalidResult("Invalid Month " + currentMonth);
|
||||
}
|
||||
++currentMonth;
|
||||
}
|
||||
@@ -145,8 +147,7 @@ public class Problem19 extends Problem{
|
||||
}
|
||||
//Days 3-13 were skipped that year
|
||||
else if((day > 2) && (day < 14)){
|
||||
System.out.println("Hit 1752 error");
|
||||
return DAYS.ERROR;
|
||||
throw new InvalidResult("Hit 1752 error");
|
||||
}
|
||||
}
|
||||
}
|
||||
@@ -164,7 +165,7 @@ public class Problem19 extends Problem{
|
||||
case THURSDAY: return DAYS.THURSDAY;
|
||||
case FRIDAY: return DAYS.FRIDAY;
|
||||
case SATURDAY: return DAYS.SATURDAY;
|
||||
default: System.out.println("Hit default error"); return DAYS.ERROR;
|
||||
default: throw new InvalidResult("Hit default error");
|
||||
}
|
||||
}
|
||||
//Returns true if the year passed to it is a leap year
|
||||
@@ -174,10 +175,7 @@ public class Problem19 extends Problem{
|
||||
}
|
||||
else if((year % 100) == 0){
|
||||
//This rule only applies at and after 1800
|
||||
if(year <= 1700){
|
||||
return true;
|
||||
}
|
||||
else if((year % 400) == 0){
|
||||
if((year <= 1700) || ((year % 400) == 0)){
|
||||
return true;
|
||||
}
|
||||
}
|
||||
|
||||
@@ -86,7 +86,7 @@ public class Problem20 extends Problem{
|
||||
@Override
|
||||
public String getResult(){
|
||||
solvedCheck("result");
|
||||
return String.format("%d! = %s\nThe sum of the digits is: %d", TOP_NUM, num.toString(), sum);
|
||||
return String.format("%d! = %s%nThe sum of the digits is: %d", TOP_NUM, num.toString(), sum);
|
||||
}
|
||||
//Returns the number 100!
|
||||
public BigInteger getNumber(){
|
||||
|
||||
@@ -117,9 +117,9 @@ public class Problem21 extends Problem{
|
||||
@Override
|
||||
public String getResult(){
|
||||
solvedCheck("result");
|
||||
StringBuilder result = new StringBuilder(String.format("All amicable numbers less than %d are\n", LIMIT));
|
||||
StringBuilder result = new StringBuilder(String.format("All amicable numbers less than %d are%n", LIMIT));
|
||||
for(int cnt = 0;cnt < amicable.size();++cnt){
|
||||
result.append(String.format("%d\n", amicable.get(cnt)));
|
||||
result.append(String.format("%d%n", amicable.get(cnt)));
|
||||
}
|
||||
result.append(String.format("The sum of all of these amicable numbers is %d", ArrayAlgorithms.getSum(amicable)));
|
||||
|
||||
|
||||
@@ -25,383 +25,21 @@ package com.mattrixwv.project_euler.problems;
|
||||
|
||||
import com.mattrixwv.ArrayAlgorithms;
|
||||
|
||||
import java.io.File;
|
||||
import java.io.IOException;
|
||||
import java.nio.file.Files;
|
||||
import java.security.InvalidParameterException;
|
||||
import java.util.ArrayList;
|
||||
import java.util.Arrays;
|
||||
import java.util.Collections;
|
||||
import java.util.List;
|
||||
|
||||
|
||||
public class Problem22 extends Problem{
|
||||
//Variables
|
||||
//Static variables
|
||||
private static final String FILE_NAME = "files/Problem22Names.txt";
|
||||
//Holds the names that will be scored
|
||||
private static final ArrayList<String> names = new ArrayList<String>(Arrays.asList("MARY","PATRICIA","LINDA","BARBARA","ELIZABETH","JENNIFER","MARIA","SUSAN","MARGARET","DOROTHY","LISA","NANCY","KAREN",
|
||||
"BETTY","HELEN","SANDRA","DONNA","CAROL","RUTH","SHARON","MICHELLE","LAURA","SARAH","KIMBERLY","DEBORAH","JESSICA","SHIRLEY",
|
||||
"CYNTHIA","ANGELA","MELISSA","BRENDA","AMY","ANNA","REBECCA","VIRGINIA","KATHLEEN","PAMELA","MARTHA","DEBRA","AMANDA","STEPHANIE",
|
||||
"CAROLYN","CHRISTINE","MARIE","JANET","CATHERINE","FRANCES","ANN","JOYCE","DIANE","ALICE","JULIE","HEATHER","TERESA","DORIS",
|
||||
"GLORIA","EVELYN","JEAN","CHERYL","MILDRED","KATHERINE","JOAN","ASHLEY","JUDITH","ROSE","JANICE","KELLY","NICOLE","JUDY",
|
||||
"CHRISTINA","KATHY","THERESA","BEVERLY","DENISE","TAMMY","IRENE","JANE","LORI","RACHEL","MARILYN","ANDREA","KATHRYN","LOUISE",
|
||||
"SARA","ANNE","JACQUELINE","WANDA","BONNIE","JULIA","RUBY","LOIS","TINA","PHYLLIS","NORMA","PAULA","DIANA","ANNIE","LILLIAN",
|
||||
"EMILY","ROBIN","PEGGY","CRYSTAL","GLADYS","RITA","DAWN","CONNIE","FLORENCE","TRACY","EDNA","TIFFANY","CARMEN","ROSA","CINDY",
|
||||
"GRACE","WENDY","VICTORIA","EDITH","KIM","SHERRY","SYLVIA","JOSEPHINE","THELMA","SHANNON","SHEILA","ETHEL","ELLEN","ELAINE",
|
||||
"MARJORIE","CARRIE","CHARLOTTE","MONICA","ESTHER","PAULINE","EMMA","JUANITA","ANITA","RHONDA","HAZEL","AMBER","EVA","DEBBIE",
|
||||
"APRIL","LESLIE","CLARA","LUCILLE","JAMIE","JOANNE","ELEANOR","VALERIE","DANIELLE","MEGAN","ALICIA","SUZANNE","MICHELE","GAIL",
|
||||
"BERTHA","DARLENE","VERONICA","JILL","ERIN","GERALDINE","LAUREN","CATHY","JOANN","LORRAINE","LYNN","SALLY","REGINA","ERICA",
|
||||
"BEATRICE","DOLORES","BERNICE","AUDREY","YVONNE","ANNETTE","JUNE","SAMANTHA","MARION","DANA","STACY","ANA","RENEE","IDA","VIVIAN",
|
||||
"ROBERTA","HOLLY","BRITTANY","MELANIE","LORETTA","YOLANDA","JEANETTE","LAURIE","KATIE","KRISTEN","VANESSA","ALMA","SUE","ELSIE",
|
||||
"BETH","JEANNE","VICKI","CARLA","TARA","ROSEMARY","EILEEN","TERRI","GERTRUDE","LUCY","TONYA","ELLA","STACEY","WILMA","GINA",
|
||||
"KRISTIN","JESSIE","NATALIE","AGNES","VERA","WILLIE","CHARLENE","BESSIE","DELORES","MELINDA","PEARL","ARLENE","MAUREEN","COLLEEN",
|
||||
"ALLISON","TAMARA","JOY","GEORGIA","CONSTANCE","LILLIE","CLAUDIA","JACKIE","MARCIA","TANYA","NELLIE","MINNIE","MARLENE","HEIDI",
|
||||
"GLENDA","LYDIA","VIOLA","COURTNEY","MARIAN","STELLA","CAROLINE","DORA","JO","VICKIE","MATTIE","TERRY","MAXINE","IRMA","MABEL",
|
||||
"MARSHA","MYRTLE","LENA","CHRISTY","DEANNA","PATSY","HILDA","GWENDOLYN","JENNIE","NORA","MARGIE","NINA","CASSANDRA","LEAH","PENNY",
|
||||
"KAY","PRISCILLA","NAOMI","CAROLE","BRANDY","OLGA","BILLIE","DIANNE","TRACEY","LEONA","JENNY","FELICIA","SONIA","MIRIAM","VELMA",
|
||||
"BECKY","BOBBIE","VIOLET","KRISTINA","TONI","MISTY","MAE","SHELLY","DAISY","RAMONA","SHERRI","ERIKA","KATRINA","CLAIRE","LINDSEY",
|
||||
"LINDSAY","GENEVA","GUADALUPE","BELINDA","MARGARITA","SHERYL","CORA","FAYE","ADA","NATASHA","SABRINA","ISABEL","MARGUERITE",
|
||||
"HATTIE","HARRIET","MOLLY","CECILIA","KRISTI","BRANDI","BLANCHE","SANDY","ROSIE","JOANNA","IRIS","EUNICE","ANGIE","INEZ","LYNDA",
|
||||
"MADELINE","AMELIA","ALBERTA","GENEVIEVE","MONIQUE","JODI","JANIE","MAGGIE","KAYLA","SONYA","JAN","LEE","KRISTINE","CANDACE",
|
||||
"FANNIE","MARYANN","OPAL","ALISON","YVETTE","MELODY","LUZ","SUSIE","OLIVIA","FLORA","SHELLEY","KRISTY","MAMIE","LULA","LOLA",
|
||||
"VERNA","BEULAH","ANTOINETTE","CANDICE","JUANA","JEANNETTE","PAM","KELLI","HANNAH","WHITNEY","BRIDGET","KARLA","CELIA","LATOYA",
|
||||
"PATTY","SHELIA","GAYLE","DELLA","VICKY","LYNNE","SHERI","MARIANNE","KARA","JACQUELYN","ERMA","BLANCA","MYRA","LETICIA","PAT",
|
||||
"KRISTA","ROXANNE","ANGELICA","JOHNNIE","ROBYN","FRANCIS","ADRIENNE","ROSALIE","ALEXANDRA","BROOKE","BETHANY","SADIE","BERNADETTE",
|
||||
"TRACI","JODY","KENDRA","JASMINE","NICHOLE","RACHAEL","CHELSEA","MABLE","ERNESTINE","MURIEL","MARCELLA","ELENA","KRYSTAL",
|
||||
"ANGELINA","NADINE","KARI","ESTELLE","DIANNA","PAULETTE","LORA","MONA","DOREEN","ROSEMARIE","ANGEL","DESIREE","ANTONIA","HOPE",
|
||||
"GINGER","JANIS","BETSY","CHRISTIE","FREDA","MERCEDES","MEREDITH","LYNETTE","TERI","CRISTINA","EULA","LEIGH","MEGHAN","SOPHIA",
|
||||
"ELOISE","ROCHELLE","GRETCHEN","CECELIA","RAQUEL","HENRIETTA","ALYSSA","JANA","KELLEY","GWEN","KERRY","JENNA","TRICIA","LAVERNE",
|
||||
"OLIVE","ALEXIS","TASHA","SILVIA","ELVIRA","CASEY","DELIA","SOPHIE","KATE","PATTI","LORENA","KELLIE","SONJA","LILA","LANA","DARLA",
|
||||
"MAY","MINDY","ESSIE","MANDY","LORENE","ELSA","JOSEFINA","JEANNIE","MIRANDA","DIXIE","LUCIA","MARTA","FAITH","LELA","JOHANNA",
|
||||
"SHARI","CAMILLE","TAMI","SHAWNA","ELISA","EBONY","MELBA","ORA","NETTIE","TABITHA","OLLIE","JAIME","WINIFRED","KRISTIE","MARINA",
|
||||
"ALISHA","AIMEE","RENA","MYRNA","MARLA","TAMMIE","LATASHA","BONITA","PATRICE","RONDA","SHERRIE","ADDIE","FRANCINE","DELORIS",
|
||||
"STACIE","ADRIANA","CHERI","SHELBY","ABIGAIL","CELESTE","JEWEL","CARA","ADELE","REBEKAH","LUCINDA","DORTHY","CHRIS","EFFIE",
|
||||
"TRINA","REBA","SHAWN","SALLIE","AURORA","LENORA","ETTA","LOTTIE","KERRI","TRISHA","NIKKI","ESTELLA","FRANCISCA","JOSIE","TRACIE",
|
||||
"MARISSA","KARIN","BRITTNEY","JANELLE","LOURDES","LAUREL","HELENE","FERN","ELVA","CORINNE","KELSEY","INA","BETTIE","ELISABETH",
|
||||
"AIDA","CAITLIN","INGRID","IVA","EUGENIA","CHRISTA","GOLDIE","CASSIE","MAUDE","JENIFER","THERESE","FRANKIE","DENA","LORNA",
|
||||
"JANETTE","LATONYA","CANDY","MORGAN","CONSUELO","TAMIKA","ROSETTA","DEBORA","CHERIE","POLLY","DINA","JEWELL","FAY","JILLIAN",
|
||||
"DOROTHEA","NELL","TRUDY","ESPERANZA","PATRICA","KIMBERLEY","SHANNA","HELENA","CAROLINA","CLEO","STEFANIE","ROSARIO","OLA",
|
||||
"JANINE","MOLLIE","LUPE","ALISA","LOU","MARIBEL","SUSANNE","BETTE","SUSANA","ELISE","CECILE","ISABELLE","LESLEY","JOCELYN",
|
||||
"PAIGE","JONI","RACHELLE","LEOLA","DAPHNE","ALTA","ESTER","PETRA","GRACIELA","IMOGENE","JOLENE","KEISHA","LACEY","GLENNA",
|
||||
"GABRIELA","KERI","URSULA","LIZZIE","KIRSTEN","SHANA","ADELINE","MAYRA","JAYNE","JACLYN","GRACIE","SONDRA","CARMELA","MARISA",
|
||||
"ROSALIND","CHARITY","TONIA","BEATRIZ","MARISOL","CLARICE","JEANINE","SHEENA","ANGELINE","FRIEDA","LILY","ROBBIE","SHAUNA",
|
||||
"MILLIE","CLAUDETTE","CATHLEEN","ANGELIA","GABRIELLE","AUTUMN","KATHARINE","SUMMER","JODIE","STACI","LEA","CHRISTI","JIMMIE",
|
||||
"JUSTINE","ELMA","LUELLA","MARGRET","DOMINIQUE","SOCORRO","RENE","MARTINA","MARGO","MAVIS","CALLIE","BOBBI","MARITZA","LUCILE",
|
||||
"LEANNE","JEANNINE","DEANA","AILEEN","LORIE","LADONNA","WILLA","MANUELA","GALE","SELMA","DOLLY","SYBIL","ABBY","LARA","DALE",
|
||||
"IVY","DEE","WINNIE","MARCY","LUISA","JERI","MAGDALENA","OFELIA","MEAGAN","AUDRA","MATILDA","LEILA","CORNELIA","BIANCA","SIMONE",
|
||||
"BETTYE","RANDI","VIRGIE","LATISHA","BARBRA","GEORGINA","ELIZA","LEANN","BRIDGETTE","RHODA","HALEY","ADELA","NOLA","BERNADINE",
|
||||
"FLOSSIE","ILA","GRETA","RUTHIE","NELDA","MINERVA","LILLY","TERRIE","LETHA","HILARY","ESTELA","VALARIE","BRIANNA","ROSALYN",
|
||||
"EARLINE","CATALINA","AVA","MIA","CLARISSA","LIDIA","CORRINE","ALEXANDRIA","CONCEPCION","TIA","SHARRON","RAE","DONA","ERICKA",
|
||||
"JAMI","ELNORA","CHANDRA","LENORE","NEVA","MARYLOU","MELISA","TABATHA","SERENA","AVIS","ALLIE","SOFIA","JEANIE","ODESSA","NANNIE",
|
||||
"HARRIETT","LORAINE","PENELOPE","MILAGROS","EMILIA","BENITA","ALLYSON","ASHLEE","TANIA","TOMMIE","ESMERALDA","KARINA","EVE",
|
||||
"PEARLIE","ZELMA","MALINDA","NOREEN","TAMEKA","SAUNDRA","HILLARY","AMIE","ALTHEA","ROSALINDA","JORDAN","LILIA","ALANA","GAY",
|
||||
"CLARE","ALEJANDRA","ELINOR","MICHAEL","LORRIE","JERRI","DARCY","EARNESTINE","CARMELLA","TAYLOR","NOEMI","MARCIE","LIZA",
|
||||
"ANNABELLE","LOUISA","EARLENE","MALLORY","CARLENE","NITA","SELENA","TANISHA","KATY","JULIANNE","JOHN","LAKISHA","EDWINA",
|
||||
"MARICELA","MARGERY","KENYA","DOLLIE","ROXIE","ROSLYN","KATHRINE","NANETTE","CHARMAINE","LAVONNE","ILENE","KRIS","TAMMI",
|
||||
"SUZETTE","CORINE","KAYE","JERRY","MERLE","CHRYSTAL","LINA","DEANNE","LILIAN","JULIANA","ALINE","LUANN","KASEY","MARYANNE",
|
||||
"EVANGELINE","COLETTE","MELVA","LAWANDA","YESENIA","NADIA","MADGE","KATHIE","EDDIE","OPHELIA","VALERIA","NONA","MITZI","MARI",
|
||||
"GEORGETTE","CLAUDINE","FRAN","ALISSA","ROSEANN","LAKEISHA","SUSANNA","REVA","DEIDRE","CHASITY","SHEREE","CARLY","JAMES","ELVIA",
|
||||
"ALYCE","DEIRDRE","GENA","BRIANA","ARACELI","KATELYN","ROSANNE","WENDI","TESSA","BERTA","MARVA","IMELDA","MARIETTA","MARCI",
|
||||
"LEONOR","ARLINE","SASHA","MADELYN","JANNA","JULIETTE","DEENA","AURELIA","JOSEFA","AUGUSTA","LILIANA","YOUNG","CHRISTIAN",
|
||||
"LESSIE","AMALIA","SAVANNAH","ANASTASIA","VILMA","NATALIA","ROSELLA","LYNNETTE","CORINA","ALFREDA","LEANNA","CAREY","AMPARO",
|
||||
"COLEEN","TAMRA","AISHA","WILDA","KARYN","CHERRY","QUEEN","MAURA","MAI","EVANGELINA","ROSANNA","HALLIE","ERNA","ENID","MARIANA",
|
||||
"LACY","JULIET","JACKLYN","FREIDA","MADELEINE","MARA","HESTER","CATHRYN","LELIA","CASANDRA","BRIDGETT","ANGELITA","JANNIE",
|
||||
"DIONNE","ANNMARIE","KATINA","BERYL","PHOEBE","MILLICENT","KATHERYN","DIANN","CARISSA","MARYELLEN","LIZ","LAURI","HELGA","GILDA",
|
||||
"ADRIAN","RHEA","MARQUITA","HOLLIE","TISHA","TAMERA","ANGELIQUE","FRANCESCA","BRITNEY","KAITLIN","LOLITA","FLORINE","ROWENA",
|
||||
"REYNA","TWILA","FANNY","JANELL","INES","CONCETTA","BERTIE","ALBA","BRIGITTE","ALYSON","VONDA","PANSY","ELBA","NOELLE","LETITIA",
|
||||
"KITTY","DEANN","BRANDIE","LOUELLA","LETA","FELECIA","SHARLENE","LESA","BEVERLEY","ROBERT","ISABELLA","HERMINIA","TERRA","CELINA",
|
||||
"TORI","OCTAVIA","JADE","DENICE","GERMAINE","SIERRA","MICHELL","CORTNEY","NELLY","DORETHA","SYDNEY","DEIDRA","MONIKA","LASHONDA",
|
||||
"JUDI","CHELSEY","ANTIONETTE","MARGOT","BOBBY","ADELAIDE","NAN","LEEANN","ELISHA","DESSIE","LIBBY","KATHI","GAYLA","LATANYA",
|
||||
"MINA","MELLISA","KIMBERLEE","JASMIN","RENAE","ZELDA","ELDA","MA","JUSTINA","GUSSIE","EMILIE","CAMILLA","ABBIE","ROCIO","KAITLYN",
|
||||
"JESSE","EDYTHE","ASHLEIGH","SELINA","LAKESHA","GERI","ALLENE","PAMALA","MICHAELA","DAYNA","CARYN","ROSALIA","SUN","JACQULINE",
|
||||
"REBECA","MARYBETH","KRYSTLE","IOLA","DOTTIE","BENNIE","BELLE","AUBREY","GRISELDA","ERNESTINA","ELIDA","ADRIANNE","DEMETRIA",
|
||||
"DELMA","CHONG","JAQUELINE","DESTINY","ARLEEN","VIRGINA","RETHA","FATIMA","TILLIE","ELEANORE","CARI","TREVA","BIRDIE","WILHELMINA",
|
||||
"ROSALEE","MAURINE","LATRICE","YONG","JENA","TARYN","ELIA","DEBBY","MAUDIE","JEANNA","DELILAH","CATRINA","SHONDA","HORTENCIA",
|
||||
"THEODORA","TERESITA","ROBBIN","DANETTE","MARYJANE","FREDDIE","DELPHINE","BRIANNE","NILDA","DANNA","CINDI","BESS","IONA","HANNA",
|
||||
"ARIEL","WINONA","VIDA","ROSITA","MARIANNA","WILLIAM","RACHEAL","GUILLERMINA","ELOISA","CELESTINE","CAREN","MALISSA","LONA",
|
||||
"CHANTEL","SHELLIE","MARISELA","LEORA","AGATHA","SOLEDAD","MIGDALIA","IVETTE","CHRISTEN","ATHENA","JANEL","CHLOE","VEDA","PATTIE",
|
||||
"TESSIE","TERA","MARILYNN","LUCRETIA","KARRIE","DINAH","DANIELA","ALECIA","ADELINA","VERNICE","SHIELA","PORTIA","MERRY","LASHAWN",
|
||||
"DEVON","DARA","TAWANA","OMA","VERDA","CHRISTIN","ALENE","ZELLA","SANDI","RAFAELA","MAYA","KIRA","CANDIDA","ALVINA","SUZAN",
|
||||
"SHAYLA","LYN","LETTIE","ALVA","SAMATHA","ORALIA","MATILDE","MADONNA","LARISSA","VESTA","RENITA","INDIA","DELOIS","SHANDA",
|
||||
"PHILLIS","LORRI","ERLINDA","CRUZ","CATHRINE","BARB","ZOE","ISABELL","IONE","GISELA","CHARLIE","VALENCIA","ROXANNA","MAYME",
|
||||
"KISHA","ELLIE","MELLISSA","DORRIS","DALIA","BELLA","ANNETTA","ZOILA","RETA","REINA","LAURETTA","KYLIE","CHRISTAL","PILAR",
|
||||
"CHARLA","ELISSA","TIFFANI","TANA","PAULINA","LEOTA","BREANNA","JAYME","CARMEL","VERNELL","TOMASA","MANDI","DOMINGA","SANTA",
|
||||
"MELODIE","LURA","ALEXA","TAMELA","RYAN","MIRNA","KERRIE","VENUS","NOEL","FELICITA","CRISTY","CARMELITA","BERNIECE","ANNEMARIE",
|
||||
"TIARA","ROSEANNE","MISSY","CORI","ROXANA","PRICILLA","KRISTAL","JUNG","ELYSE","HAYDEE","ALETHA","BETTINA","MARGE","GILLIAN",
|
||||
"FILOMENA","CHARLES","ZENAIDA","HARRIETTE","CARIDAD","VADA","UNA","ARETHA","PEARLINE","MARJORY","MARCELA","FLOR","EVETTE",
|
||||
"ELOUISE","ALINA","TRINIDAD","DAVID","DAMARIS","CATHARINE","CARROLL","BELVA","NAKIA","MARLENA","LUANNE","LORINE","KARON","DORENE",
|
||||
"DANITA","BRENNA","TATIANA","SAMMIE","LOUANN","LOREN","JULIANNA","ANDRIA","PHILOMENA","LUCILA","LEONORA","DOVIE","ROMONA","MIMI",
|
||||
"JACQUELIN","GAYE","TONJA","MISTI","JOE","GENE","CHASTITY","STACIA","ROXANN","MICAELA","NIKITA","MEI","VELDA","MARLYS","JOHNNA",
|
||||
"AURA","LAVERN","IVONNE","HAYLEY","NICKI","MAJORIE","HERLINDA","GEORGE","ALPHA","YADIRA","PERLA","GREGORIA","DANIEL","ANTONETTE",
|
||||
"SHELLI","MOZELLE","MARIAH","JOELLE","CORDELIA","JOSETTE","CHIQUITA","TRISTA","LOUIS","LAQUITA","GEORGIANA","CANDI","SHANON",
|
||||
"LONNIE","HILDEGARD","CECIL","VALENTINA","STEPHANY","MAGDA","KAROL","GERRY","GABRIELLA","TIANA","ROMA","RICHELLE","RAY",
|
||||
"PRINCESS","OLETA","JACQUE","IDELLA","ALAINA","SUZANNA","JOVITA","BLAIR","TOSHA","RAVEN","NEREIDA","MARLYN","KYLA","JOSEPH",
|
||||
"DELFINA","TENA","STEPHENIE","SABINA","NATHALIE","MARCELLE","GERTIE","DARLEEN","THEA","SHARONDA","SHANTEL","BELEN","VENESSA",
|
||||
"ROSALINA","ONA","GENOVEVA","COREY","CLEMENTINE","ROSALBA","RENATE","RENATA","MI","IVORY","GEORGIANNA","FLOY","DORCAS","ARIANA",
|
||||
"TYRA","THEDA","MARIAM","JULI","JESICA","DONNIE","VIKKI","VERLA","ROSELYN","MELVINA","JANNETTE","GINNY","DEBRAH","CORRIE","ASIA",
|
||||
"VIOLETA","MYRTIS","LATRICIA","COLLETTE","CHARLEEN","ANISSA","VIVIANA","TWYLA","PRECIOUS","NEDRA","LATONIA","LAN","HELLEN",
|
||||
"FABIOLA","ANNAMARIE","ADELL","SHARYN","CHANTAL","NIKI","MAUD","LIZETTE","LINDY","KIA","KESHA","JEANA","DANELLE","CHARLINE",
|
||||
"CHANEL","CARROL","VALORIE","LIA","DORTHA","CRISTAL","SUNNY","LEONE","LEILANI","GERRI","DEBI","ANDRA","KESHIA","IMA","EULALIA",
|
||||
"EASTER","DULCE","NATIVIDAD","LINNIE","KAMI","GEORGIE","CATINA","BROOK","ALDA","WINNIFRED","SHARLA","RUTHANN","MEAGHAN",
|
||||
"MAGDALENE","LISSETTE","ADELAIDA","VENITA","TRENA","SHIRLENE","SHAMEKA","ELIZEBETH","DIAN","SHANTA","MICKEY","LATOSHA","CARLOTTA",
|
||||
"WINDY","SOON","ROSINA","MARIANN","LEISA","JONNIE","DAWNA","CATHIE","BILLY","ASTRID","SIDNEY","LAUREEN","JANEEN","HOLLI","FAWN",
|
||||
"VICKEY","TERESSA","SHANTE","RUBYE","MARCELINA","CHANDA","CARY","TERESE","SCARLETT","MARTY","MARNIE","LULU","LISETTE","JENIFFER",
|
||||
"ELENOR","DORINDA","DONITA","CARMAN","BERNITA","ALTAGRACIA","ALETA","ADRIANNA","ZORAIDA","RONNIE","NICOLA","LYNDSEY","KENDALL",
|
||||
"JANINA","CHRISSY","AMI","STARLA","PHYLIS","PHUONG","KYRA","CHARISSE","BLANCH","SANJUANITA","RONA","NANCI","MARILEE","MARANDA",
|
||||
"CORY","BRIGETTE","SANJUANA","MARITA","KASSANDRA","JOYCELYN","IRA","FELIPA","CHELSIE","BONNY","MIREYA","LORENZA","KYONG","ILEANA",
|
||||
"CANDELARIA","TONY","TOBY","SHERIE","OK","MARK","LUCIE","LEATRICE","LAKESHIA","GERDA","EDIE","BAMBI","MARYLIN","LAVON","HORTENSE",
|
||||
"GARNET","EVIE","TRESSA","SHAYNA","LAVINA","KYUNG","JEANETTA","SHERRILL","SHARA","PHYLISS","MITTIE","ANABEL","ALESIA","THUY",
|
||||
"TAWANDA","RICHARD","JOANIE","TIFFANIE","LASHANDA","KARISSA","ENRIQUETA","DARIA","DANIELLA","CORINNA","ALANNA","ABBEY","ROXANE",
|
||||
"ROSEANNA","MAGNOLIA","LIDA","KYLE","JOELLEN","ERA","CORAL","CARLEEN","TRESA","PEGGIE","NOVELLA","NILA","MAYBELLE","JENELLE",
|
||||
"CARINA","NOVA","MELINA","MARQUERITE","MARGARETTE","JOSEPHINA","EVONNE","DEVIN","CINTHIA","ALBINA","TOYA","TAWNYA","SHERITA",
|
||||
"SANTOS","MYRIAM","LIZABETH","LISE","KEELY","JENNI","GISELLE","CHERYLE","ARDITH","ARDIS","ALESHA","ADRIANE","SHAINA","LINNEA",
|
||||
"KAROLYN","HONG","FLORIDA","FELISHA","DORI","DARCI","ARTIE","ARMIDA","ZOLA","XIOMARA","VERGIE","SHAMIKA","NENA","NANNETTE","MAXIE",
|
||||
"LOVIE","JEANE","JAIMIE","INGE","FARRAH","ELAINA","CAITLYN","STARR","FELICITAS","CHERLY","CARYL","YOLONDA","YASMIN","TEENA",
|
||||
"PRUDENCE","PENNIE","NYDIA","MACKENZIE","ORPHA","MARVEL","LIZBETH","LAURETTE","JERRIE","HERMELINDA","CAROLEE","TIERRA","MIRIAN",
|
||||
"META","MELONY","KORI","JENNETTE","JAMILA","ENA","ANH","YOSHIKO","SUSANNAH","SALINA","RHIANNON","JOLEEN","CRISTINE","ASHTON",
|
||||
"ARACELY","TOMEKA","SHALONDA","MARTI","LACIE","KALA","JADA","ILSE","HAILEY","BRITTANI","ZONA","SYBLE","SHERRYL","RANDY","NIDIA",
|
||||
"MARLO","KANDICE","KANDI","DEB","DEAN","AMERICA","ALYCIA","TOMMY","RONNA","NORENE","MERCY","JOSE","INGEBORG","GIOVANNA","GEMMA",
|
||||
"CHRISTEL","AUDRY","ZORA","VITA","VAN","TRISH","STEPHAINE","SHIRLEE","SHANIKA","MELONIE","MAZIE","JAZMIN","INGA","HOA","HETTIE",
|
||||
"GERALYN","FONDA","ESTRELLA","ADELLA","SU","SARITA","RINA","MILISSA","MARIBETH","GOLDA","EVON","ETHELYN","ENEDINA","CHERISE",
|
||||
"CHANA","VELVA","TAWANNA","SADE","MIRTA","LI","KARIE","JACINTA","ELNA","DAVINA","CIERRA","ASHLIE","ALBERTHA","TANESHA","STEPHANI",
|
||||
"NELLE","MINDI","LU","LORINDA","LARUE","FLORENE","DEMETRA","DEDRA","CIARA","CHANTELLE","ASHLY","SUZY","ROSALVA","NOELIA","LYDA",
|
||||
"LEATHA","KRYSTYNA","KRISTAN","KARRI","DARLINE","DARCIE","CINDA","CHEYENNE","CHERRIE","AWILDA","ALMEDA","ROLANDA","LANETTE",
|
||||
"JERILYN","GISELE","EVALYN","CYNDI","CLETA","CARIN","ZINA","ZENA","VELIA","TANIKA","PAUL","CHARISSA","THOMAS","TALIA","MARGARETE",
|
||||
"LAVONDA","KAYLEE","KATHLENE","JONNA","IRENA","ILONA","IDALIA","CANDIS","CANDANCE","BRANDEE","ANITRA","ALIDA","SIGRID","NICOLETTE",
|
||||
"MARYJO","LINETTE","HEDWIG","CHRISTIANA","CASSIDY","ALEXIA","TRESSIE","MODESTA","LUPITA","LITA","GLADIS","EVELIA","DAVIDA",
|
||||
"CHERRI","CECILY","ASHELY","ANNABEL","AGUSTINA","WANITA","SHIRLY","ROSAURA","HULDA","EUN","BAILEY","YETTA","VERONA","THOMASINA",
|
||||
"SIBYL","SHANNAN","MECHELLE","LUE","LEANDRA","LANI","KYLEE","KANDY","JOLYNN","FERNE","EBONI","CORENE","ALYSIA","ZULA","NADA",
|
||||
"MOIRA","LYNDSAY","LORRETTA","JUAN","JAMMIE","HORTENSIA","GAYNELL","CAMERON","ADRIA","VINA","VICENTA","TANGELA","STEPHINE",
|
||||
"NORINE","NELLA","LIANA","LESLEE","KIMBERELY","ILIANA","GLORY","FELICA","EMOGENE","ELFRIEDE","EDEN","EARTHA","CARMA","BEA","OCIE",
|
||||
"MARRY","LENNIE","KIARA","JACALYN","CARLOTA","ARIELLE","YU","STAR","OTILIA","KIRSTIN","KACEY","JOHNETTA","JOEY","JOETTA",
|
||||
"JERALDINE","JAUNITA","ELANA","DORTHEA","CAMI","AMADA","ADELIA","VERNITA","TAMAR","SIOBHAN","RENEA","RASHIDA","OUIDA","ODELL",
|
||||
"NILSA","MERYL","KRISTYN","JULIETA","DANICA","BREANNE","AUREA","ANGLEA","SHERRON","ODETTE","MALIA","LORELEI","LIN","LEESA",
|
||||
"KENNA","KATHLYN","FIONA","CHARLETTE","SUZIE","SHANTELL","SABRA","RACQUEL","MYONG","MIRA","MARTINE","LUCIENNE","LAVADA","JULIANN",
|
||||
"JOHNIE","ELVERA","DELPHIA","CLAIR","CHRISTIANE","CHAROLETTE","CARRI","AUGUSTINE","ASHA","ANGELLA","PAOLA","NINFA","LEDA","LAI",
|
||||
"EDA","SUNSHINE","STEFANI","SHANELL","PALMA","MACHELLE","LISSA","KECIA","KATHRYNE","KARLENE","JULISSA","JETTIE","JENNIFFER","HUI",
|
||||
"CORRINA","CHRISTOPHER","CAROLANN","ALENA","TESS","ROSARIA","MYRTICE","MARYLEE","LIANE","KENYATTA","JUDIE","JANEY","IN","ELMIRA",
|
||||
"ELDORA","DENNA","CRISTI","CATHI","ZAIDA","VONNIE","VIVA","VERNIE","ROSALINE","MARIELA","LUCIANA","LESLI","KARAN","FELICE",
|
||||
"DENEEN","ADINA","WYNONA","TARSHA","SHERON","SHASTA","SHANITA","SHANI","SHANDRA","RANDA","PINKIE","PARIS","NELIDA","MARILOU",
|
||||
"LYLA","LAURENE","LACI","JOI","JANENE","DOROTHA","DANIELE","DANI","CAROLYNN","CARLYN","BERENICE","AYESHA","ANNELIESE","ALETHEA",
|
||||
"THERSA","TAMIKO","RUFINA","OLIVA","MOZELL","MARYLYN","MADISON","KRISTIAN","KATHYRN","KASANDRA","KANDACE","JANAE","GABRIEL",
|
||||
"DOMENICA","DEBBRA","DANNIELLE","CHUN","BUFFY","BARBIE","ARCELIA","AJA","ZENOBIA","SHAREN","SHAREE","PATRICK","PAGE","MY",
|
||||
"LAVINIA","KUM","KACIE","JACKELINE","HUONG","FELISA","EMELIA","ELEANORA","CYTHIA","CRISTIN","CLYDE","CLARIBEL","CARON",
|
||||
"ANASTACIA","ZULMA","ZANDRA","YOKO","TENISHA","SUSANN","SHERILYN","SHAY","SHAWANDA","SABINE","ROMANA","MATHILDA","LINSEY",
|
||||
"KEIKO","JOANA","ISELA","GRETTA","GEORGETTA","EUGENIE","DUSTY","DESIRAE","DELORA","CORAZON","ANTONINA","ANIKA","WILLENE","TRACEE",
|
||||
"TAMATHA","REGAN","NICHELLE","MICKIE","MAEGAN","LUANA","LANITA","KELSIE","EDELMIRA","BREE","AFTON","TEODORA","TAMIE","SHENA",
|
||||
"MEG","LINH","KELI","KACI","DANYELLE","BRITT","ARLETTE","ALBERTINE","ADELLE","TIFFINY","STORMY","SIMONA","NUMBERS","NICOLASA",
|
||||
"NICHOL","NIA","NAKISHA","MEE","MAIRA","LOREEN","KIZZY","JOHNNY","JAY","FALLON","CHRISTENE","BOBBYE","ANTHONY","YING","VINCENZA",
|
||||
"TANJA","RUBIE","RONI","QUEENIE","MARGARETT","KIMBERLI","IRMGARD","IDELL","HILMA","EVELINA","ESTA","EMILEE","DENNISE","DANIA",
|
||||
"CARL","CARIE","ANTONIO","WAI","SANG","RISA","RIKKI","PARTICIA","MUI","MASAKO","MARIO","LUVENIA","LOREE","LONI","LIEN","KEVIN",
|
||||
"GIGI","FLORENCIA","DORIAN","DENITA","DALLAS","CHI","BILLYE","ALEXANDER","TOMIKA","SHARITA","RANA","NIKOLE","NEOMA","MARGARITE",
|
||||
"MADALYN","LUCINA","LAILA","KALI","JENETTE","GABRIELE","EVELYNE","ELENORA","CLEMENTINA","ALEJANDRINA","ZULEMA","VIOLETTE",
|
||||
"VANNESSA","THRESA","RETTA","PIA","PATIENCE","NOELLA","NICKIE","JONELL","DELTA","CHUNG","CHAYA","CAMELIA","BETHEL","ANYA",
|
||||
"ANDREW","THANH","SUZANN","SPRING","SHU","MILA","LILLA","LAVERNA","KEESHA","KATTIE","GIA","GEORGENE","EVELINE","ESTELL","ELIZBETH",
|
||||
"VIVIENNE","VALLIE","TRUDIE","STEPHANE","MICHEL","MAGALY","MADIE","KENYETTA","KARREN","JANETTA","HERMINE","HARMONY","DRUCILLA",
|
||||
"DEBBI","CELESTINA","CANDIE","BRITNI","BECKIE","AMINA","ZITA","YUN","YOLANDE","VIVIEN","VERNETTA","TRUDI","SOMMER","PEARLE",
|
||||
"PATRINA","OSSIE","NICOLLE","LOYCE","LETTY","LARISA","KATHARINA","JOSELYN","JONELLE","JENELL","IESHA","HEIDE","FLORINDA",
|
||||
"FLORENTINA","FLO","ELODIA","DORINE","BRUNILDA","BRIGID","ASHLI","ARDELLA","TWANA","THU","TARAH","SUNG","SHEA","SHAVON","SHANE",
|
||||
"SERINA","RAYNA","RAMONITA","NGA","MARGURITE","LUCRECIA","KOURTNEY","KATI","JESUS","JESENIA","DIAMOND","CRISTA","AYANA","ALICA",
|
||||
"ALIA","VINNIE","SUELLEN","ROMELIA","RACHELL","PIPER","OLYMPIA","MICHIKO","KATHALEEN","JOLIE","JESSI","JANESSA","HANA","HA",
|
||||
"ELEASE","CARLETTA","BRITANY","SHONA","SALOME","ROSAMOND","REGENA","RAINA","NGOC","NELIA","LOUVENIA","LESIA","LATRINA","LATICIA",
|
||||
"LARHONDA","JINA","JACKI","HOLLIS","HOLLEY","EMMY","DEEANN","CORETTA","ARNETTA","VELVET","THALIA","SHANICE","NETA","MIKKI","MICKI",
|
||||
"LONNA","LEANA","LASHUNDA","KILEY","JOYE","JACQULYN","IGNACIA","HYUN","HIROKO","HENRY","HENRIETTE","ELAYNE","DELINDA","DARNELL",
|
||||
"DAHLIA","COREEN","CONSUELA","CONCHITA","CELINE","BABETTE","AYANNA","ANETTE","ALBERTINA","SKYE","SHAWNEE","SHANEKA","QUIANA",
|
||||
"PAMELIA","MIN","MERRI","MERLENE","MARGIT","KIESHA","KIERA","KAYLENE","JODEE","JENISE","ERLENE","EMMIE","ELSE","DARYL","DALILA",
|
||||
"DAISEY","CODY","CASIE","BELIA","BABARA","VERSIE","VANESA","SHELBA","SHAWNDA","SAM","NORMAN","NIKIA","NAOMA","MARNA","MARGERET",
|
||||
"MADALINE","LAWANA","KINDRA","JUTTA","JAZMINE","JANETT","HANNELORE","GLENDORA","GERTRUD","GARNETT","FREEDA","FREDERICA","FLORANCE",
|
||||
"FLAVIA","DENNIS","CARLINE","BEVERLEE","ANJANETTE","VALDA","TRINITY","TAMALA","STEVIE","SHONNA","SHA","SARINA","ONEIDA","MICAH",
|
||||
"MERILYN","MARLEEN","LURLINE","LENNA","KATHERIN","JIN","JENI","HAE","GRACIA","GLADY","FARAH","ERIC","ENOLA","EMA","DOMINQUE",
|
||||
"DEVONA","DELANA","CECILA","CAPRICE","ALYSHA","ALI","ALETHIA","VENA","THERESIA","TAWNY","SONG","SHAKIRA","SAMARA","SACHIKO",
|
||||
"RACHELE","PAMELLA","NICKY","MARNI","MARIEL","MAREN","MALISA","LIGIA","LERA","LATORIA","LARAE","KIMBER","KATHERN","KAREY",
|
||||
"JENNEFER","JANETH","HALINA","FREDIA","DELISA","DEBROAH","CIERA","CHIN","ANGELIKA","ANDREE","ALTHA","YEN","VIVAN","TERRESA",
|
||||
"TANNA","SUK","SUDIE","SOO","SIGNE","SALENA","RONNI","REBBECCA","MYRTIE","MCKENZIE","MALIKA","MAIDA","LOAN","LEONARDA","KAYLEIGH",
|
||||
"FRANCE","ETHYL","ELLYN","DAYLE","CAMMIE","BRITTNI","BIRGIT","AVELINA","ASUNCION","ARIANNA","AKIKO","VENICE","TYESHA","TONIE",
|
||||
"TIESHA","TAKISHA","STEFFANIE","SINDY","SANTANA","MEGHANN","MANDA","MACIE","LADY","KELLYE","KELLEE","JOSLYN","JASON","INGER",
|
||||
"INDIRA","GLINDA","GLENNIS","FERNANDA","FAUSTINA","ENEIDA","ELICIA","DOT","DIGNA","DELL","ARLETTA","ANDRE","WILLIA","TAMMARA",
|
||||
"TABETHA","SHERRELL","SARI","REFUGIO","REBBECA","PAULETTA","NIEVES","NATOSHA","NAKITA","MAMMIE","KENISHA","KAZUKO","KASSIE",
|
||||
"GARY","EARLEAN","DAPHINE","CORLISS","CLOTILDE","CAROLYNE","BERNETTA","AUGUSTINA","AUDREA","ANNIS","ANNABELL","YAN","TENNILLE",
|
||||
"TAMICA","SELENE","SEAN","ROSANA","REGENIA","QIANA","MARKITA","MACY","LEEANNE","LAURINE","KYM","JESSENIA","JANITA","GEORGINE",
|
||||
"GENIE","EMIKO","ELVIE","DEANDRA","DAGMAR","CORIE","COLLEN","CHERISH","ROMAINE","PORSHA","PEARLENE","MICHELINE","MERNA","MARGORIE",
|
||||
"MARGARETTA","LORE","KENNETH","JENINE","HERMINA","FREDERICKA","ELKE","DRUSILLA","DORATHY","DIONE","DESIRE","CELENA","BRIGIDA",
|
||||
"ANGELES","ALLEGRA","THEO","TAMEKIA","SYNTHIA","STEPHEN","SOOK","SLYVIA","ROSANN","REATHA","RAYE","MARQUETTA","MARGART","LING",
|
||||
"LAYLA","KYMBERLY","KIANA","KAYLEEN","KATLYN","KARMEN","JOELLA","IRINA","EMELDA","ELENI","DETRA","CLEMMIE","CHERYLL","CHANTELL",
|
||||
"CATHEY","ARNITA","ARLA","ANGLE","ANGELIC","ALYSE","ZOFIA","THOMASINE","TENNIE","SON","SHERLY","SHERLEY","SHARYL","REMEDIOS",
|
||||
"PETRINA","NICKOLE","MYUNG","MYRLE","MOZELLA","LOUANNE","LISHA","LATIA","LANE","KRYSTA","JULIENNE","JOEL","JEANENE","JACQUALINE",
|
||||
"ISAURA","GWENDA","EARLEEN","DONALD","CLEOPATRA","CARLIE","AUDIE","ANTONIETTA","ALISE","ALEX","VERDELL","VAL","TYLER","TOMOKO",
|
||||
"THAO","TALISHA","STEVEN","SO","SHEMIKA","SHAUN","SCARLET","SAVANNA","SANTINA","ROSIA","RAEANN","ODILIA","NANA","MINNA","MAGAN",
|
||||
"LYNELLE","LE","KARMA","JOEANN","IVANA","INELL","ILANA","HYE","HONEY","HEE","GUDRUN","FRANK","DREAMA","CRISSY","CHANTE",
|
||||
"CARMELINA","ARVILLA","ARTHUR","ANNAMAE","ALVERA","ALEIDA","AARON","YEE","YANIRA","VANDA","TIANNA","TAM","STEFANIA","SHIRA",
|
||||
"PERRY","NICOL","NANCIE","MONSERRATE","MINH","MELYNDA","MELANY","MATTHEW","LOVELLA","LAURE","KIRBY","KACY","JACQUELYNN","HYON",
|
||||
"GERTHA","FRANCISCO","ELIANA","CHRISTENA","CHRISTEEN","CHARISE","CATERINA","CARLEY","CANDYCE","ARLENA","AMMIE","YANG","WILLETTE",
|
||||
"VANITA","TUYET","TINY","SYREETA","SILVA","SCOTT","RONALD","PENNEY","NYLA","MICHAL","MAURICE","MARYAM","MARYA","MAGEN","LUDIE",
|
||||
"LOMA","LIVIA","LANELL","KIMBERLIE","JULEE","DONETTA","DIEDRA","DENISHA","DEANE","DAWNE","CLARINE","CHERRYL","BRONWYN","BRANDON",
|
||||
"ALLA","VALERY","TONDA","SUEANN","SORAYA","SHOSHANA","SHELA","SHARLEEN","SHANELLE","NERISSA","MICHEAL","MERIDITH","MELLIE","MAYE",
|
||||
"MAPLE","MAGARET","LUIS","LILI","LEONILA","LEONIE","LEEANNA","LAVONIA","LAVERA","KRISTEL","KATHEY","KATHE","JUSTIN","JULIAN",
|
||||
"JIMMY","JANN","ILDA","HILDRED","HILDEGARDE","GENIA","FUMIKO","EVELIN","ERMELINDA","ELLY","DUNG","DOLORIS","DIONNA","DANAE",
|
||||
"BERNEICE","ANNICE","ALIX","VERENA","VERDIE","TRISTAN","SHAWNNA","SHAWANA","SHAUNNA","ROZELLA","RANDEE","RANAE","MILAGRO",
|
||||
"LYNELL","LUISE","LOUIE","LOIDA","LISBETH","KARLEEN","JUNITA","JONA","ISIS","HYACINTH","HEDY","GWENN","ETHELENE","ERLINE",
|
||||
"EDWARD","DONYA","DOMONIQUE","DELICIA","DANNETTE","CICELY","BRANDA","BLYTHE","BETHANN","ASHLYN","ANNALEE","ALLINE","YUKO","VELLA",
|
||||
"TRANG","TOWANDA","TESHA","SHERLYN","NARCISA","MIGUELINA","MERI","MAYBELL","MARLANA","MARGUERITA","MADLYN","LUNA","LORY",
|
||||
"LORIANN","LIBERTY","LEONORE","LEIGHANN","LAURICE","LATESHA","LARONDA","KATRICE","KASIE","KARL","KALEY","JADWIGA","GLENNIE",
|
||||
"GEARLDINE","FRANCINA","EPIFANIA","DYAN","DORIE","DIEDRE","DENESE","DEMETRICE","DELENA","DARBY","CRISTIE","CLEORA","CATARINA",
|
||||
"CARISA","BERNIE","BARBERA","ALMETA","TRULA","TEREASA","SOLANGE","SHEILAH","SHAVONNE","SANORA","ROCHELL","MATHILDE","MARGARETA",
|
||||
"MAIA","LYNSEY","LAWANNA","LAUNA","KENA","KEENA","KATIA","JAMEY","GLYNDA","GAYLENE","ELVINA","ELANOR","DANUTA","DANIKA","CRISTEN",
|
||||
"CORDIE","COLETTA","CLARITA","CARMON","BRYNN","AZUCENA","AUNDREA","ANGELE","YI","WALTER","VERLIE","VERLENE","TAMESHA","SILVANA",
|
||||
"SEBRINA","SAMIRA","REDA","RAYLENE","PENNI","PANDORA","NORAH","NOMA","MIREILLE","MELISSIA","MARYALICE","LARAINE","KIMBERY",
|
||||
"KARYL","KARINE","KAM","JOLANDA","JOHANA","JESUSA","JALEESA","JAE","JACQUELYNE","IRISH","ILUMINADA","HILARIA","HANH","GENNIE",
|
||||
"FRANCIE","FLORETTA","EXIE","EDDA","DREMA","DELPHA","BEV","BARBAR","ASSUNTA","ARDELL","ANNALISA","ALISIA","YUKIKO","YOLANDO",
|
||||
"WONDA","WEI","WALTRAUD","VETA","TEQUILA","TEMEKA","TAMEIKA","SHIRLEEN","SHENITA","PIEDAD","OZELLA","MIRTHA","MARILU","KIMIKO",
|
||||
"JULIANE","JENICE","JEN","JANAY","JACQUILINE","HILDE","FE","FAE","EVAN","EUGENE","ELOIS","ECHO","DEVORAH","CHAU","BRINDA",
|
||||
"BETSEY","ARMINDA","ARACELIS","APRYL","ANNETT","ALISHIA","VEOLA","USHA","TOSHIKO","THEOLA","TASHIA","TALITHA","SHERY","RUDY",
|
||||
"RENETTA","REIKO","RASHEEDA","OMEGA","OBDULIA","MIKA","MELAINE","MEGGAN","MARTIN","MARLEN","MARGET","MARCELINE","MANA","MAGDALEN",
|
||||
"LIBRADA","LEZLIE","LEXIE","LATASHIA","LASANDRA","KELLE","ISIDRA","ISA","INOCENCIA","GWYN","FRANCOISE","ERMINIA","ERINN","DIMPLE",
|
||||
"DEVORA","CRISELDA","ARMANDA","ARIE","ARIANE","ANGELO","ANGELENA","ALLEN","ALIZA","ADRIENE","ADALINE","XOCHITL","TWANNA","TRAN",
|
||||
"TOMIKO","TAMISHA","TAISHA","SUSY","SIU","RUTHA","ROXY","RHONA","RAYMOND","OTHA","NORIKO","NATASHIA","MERRIE","MELVIN","MARINDA",
|
||||
"MARIKO","MARGERT","LORIS","LIZZETTE","LEISHA","KAILA","KA","JOANNIE","JERRICA","JENE","JANNET","JANEE","JACINDA","HERTA",
|
||||
"ELENORE","DORETTA","DELAINE","DANIELL","CLAUDIE","CHINA","BRITTA","APOLONIA","AMBERLY","ALEASE","YURI","YUK","WEN","WANETA",
|
||||
"UTE","TOMI","SHARRI","SANDIE","ROSELLE","REYNALDA","RAGUEL","PHYLICIA","PATRIA","OLIMPIA","ODELIA","MITZIE","MITCHELL","MISS",
|
||||
"MINDA","MIGNON","MICA","MENDY","MARIVEL","MAILE","LYNETTA","LAVETTE","LAURYN","LATRISHA","LAKIESHA","KIERSTEN","KARY","JOSPHINE",
|
||||
"JOLYN","JETTA","JANISE","JACQUIE","IVELISSE","GLYNIS","GIANNA","GAYNELLE","EMERALD","DEMETRIUS","DANYELL","DANILLE","DACIA",
|
||||
"CORALEE","CHER","CEOLA","BRETT","BELL","ARIANNE","ALESHIA","YUNG","WILLIEMAE","TROY","TRINH","THORA","TAI","SVETLANA","SHERIKA",
|
||||
"SHEMEKA","SHAUNDA","ROSELINE","RICKI","MELDA","MALLIE","LAVONNA","LATINA","LARRY","LAQUANDA","LALA","LACHELLE","KLARA","KANDIS",
|
||||
"JOHNA","JEANMARIE","JAYE","HANG","GRAYCE","GERTUDE","EMERITA","EBONIE","CLORINDA","CHING","CHERY","CAROLA","BREANN","BLOSSOM",
|
||||
"BERNARDINE","BECKI","ARLETHA","ARGELIA","ARA","ALITA","YULANDA","YON","YESSENIA","TOBI","TASIA","SYLVIE","SHIRL","SHIRELY",
|
||||
"SHERIDAN","SHELLA","SHANTELLE","SACHA","ROYCE","REBECKA","REAGAN","PROVIDENCIA","PAULENE","MISHA","MIKI","MARLINE","MARICA",
|
||||
"LORITA","LATOYIA","LASONYA","KERSTIN","KENDA","KEITHA","KATHRIN","JAYMIE","JACK","GRICELDA","GINETTE","ERYN","ELINA","ELFRIEDA",
|
||||
"DANYEL","CHEREE","CHANELLE","BARRIE","AVERY","AURORE","ANNAMARIA","ALLEEN","AILENE","AIDE","YASMINE","VASHTI","VALENTINE",
|
||||
"TREASA","TORY","TIFFANEY","SHERYLL","SHARIE","SHANAE","SAU","RAISA","PA","NEDA","MITSUKO","MIRELLA","MILDA","MARYANNA","MARAGRET",
|
||||
"MABELLE","LUETTA","LORINA","LETISHA","LATARSHA","LANELLE","LAJUANA","KRISSY","KARLY","KARENA","JON","JESSIKA","JERICA","JEANELLE",
|
||||
"JANUARY","JALISA","JACELYN","IZOLA","IVEY","GREGORY","EUNA","ETHA","DREW","DOMITILA","DOMINICA","DAINA","CREOLA","CARLI","CAMIE",
|
||||
"BUNNY","BRITTNY","ASHANTI","ANISHA","ALEEN","ADAH","YASUKO","WINTER","VIKI","VALRIE","TONA","TINISHA","THI","TERISA","TATUM",
|
||||
"TANEKA","SIMONNE","SHALANDA","SERITA","RESSIE","REFUGIA","PAZ","OLENE","NA","MERRILL","MARGHERITA","MANDIE","MAN","MAIRE",
|
||||
"LYNDIA","LUCI","LORRIANE","LORETA","LEONIA","LAVONA","LASHAWNDA","LAKIA","KYOKO","KRYSTINA","KRYSTEN","KENIA","KELSI","JUDE",
|
||||
"JEANICE","ISOBEL","GEORGIANN","GENNY","FELICIDAD","EILENE","DEON","DELOISE","DEEDEE","DANNIE","CONCEPTION","CLORA","CHERILYN",
|
||||
"CHANG","CALANDRA","BERRY","ARMANDINA","ANISA","ULA","TIMOTHY","TIERA","THERESSA","STEPHANIA","SIMA","SHYLA","SHONTA","SHERA",
|
||||
"SHAQUITA","SHALA","SAMMY","ROSSANA","NOHEMI","NERY","MORIAH","MELITA","MELIDA","MELANI","MARYLYNN","MARISHA","MARIETTE","MALORIE",
|
||||
"MADELENE","LUDIVINA","LORIA","LORETTE","LORALEE","LIANNE","LEON","LAVENIA","LAURINDA","LASHON","KIT","KIMI","KEILA","KATELYNN",
|
||||
"KAI","JONE","JOANE","JI","JAYNA","JANELLA","JA","HUE","HERTHA","FRANCENE","ELINORE","DESPINA","DELSIE","DEEDRA","CLEMENCIA",
|
||||
"CARRY","CAROLIN","CARLOS","BULAH","BRITTANIE","BOK","BLONDELL","BIBI","BEAULAH","BEATA","ANNITA","AGRIPINA","VIRGEN","VALENE",
|
||||
"UN","TWANDA","TOMMYE","TOI","TARRA","TARI","TAMMERA","SHAKIA","SADYE","RUTHANNE","ROCHEL","RIVKA","PURA","NENITA","NATISHA",
|
||||
"MING","MERRILEE","MELODEE","MARVIS","LUCILLA","LEENA","LAVETA","LARITA","LANIE","KEREN","ILEEN","GEORGEANN","GENNA","GENESIS",
|
||||
"FRIDA","EWA","EUFEMIA","EMELY","ELA","EDYTH","DEONNA","DEADRA","DARLENA","CHANELL","CHAN","CATHERN","CASSONDRA","CASSAUNDRA",
|
||||
"BERNARDA","BERNA","ARLINDA","ANAMARIA","ALBERT","WESLEY","VERTIE","VALERI","TORRI","TATYANA","STASIA","SHERISE","SHERILL",
|
||||
"SEASON","SCOTTIE","SANDA","RUTHE","ROSY","ROBERTO","ROBBI","RANEE","QUYEN","PEARLY","PALMIRA","ONITA","NISHA","NIESHA","NIDA",
|
||||
"NEVADA","NAM","MERLYN","MAYOLA","MARYLOUISE","MARYLAND","MARX","MARTH","MARGENE","MADELAINE","LONDA","LEONTINE","LEOMA","LEIA",
|
||||
"LAWRENCE","LAURALEE","LANORA","LAKITA","KIYOKO","KETURAH","KATELIN","KAREEN","JONIE","JOHNETTE","JENEE","JEANETT","IZETTA",
|
||||
"HIEDI","HEIKE","HASSIE","HAROLD","GIUSEPPINA","GEORGANN","FIDELA","FERNANDE","ELWANDA","ELLAMAE","ELIZ","DUSTI","DOTTY","CYNDY",
|
||||
"CORALIE","CELESTA","ARGENTINA","ALVERTA","XENIA","WAVA","VANETTA","TORRIE","TASHINA","TANDY","TAMBRA","TAMA","STEPANIE","SHILA",
|
||||
"SHAUNTA","SHARAN","SHANIQUA","SHAE","SETSUKO","SERAFINA","SANDEE","ROSAMARIA","PRISCILA","OLINDA","NADENE","MUOI","MICHELINA",
|
||||
"MERCEDEZ","MARYROSE","MARIN","MARCENE","MAO","MAGALI","MAFALDA","LOGAN","LINN","LANNIE","KAYCE","KAROLINE","KAMILAH","KAMALA",
|
||||
"JUSTA","JOLINE","JENNINE","JACQUETTA","IRAIDA","GERALD","GEORGEANNA","FRANCHESCA","FAIRY","EMELINE","ELANE","EHTEL","EARLIE",
|
||||
"DULCIE","DALENE","CRIS","CLASSIE","CHERE","CHARIS","CAROYLN","CARMINA","CARITA","BRIAN","BETHANIE","AYAKO","ARICA","AN","ALYSA",
|
||||
"ALESSANDRA","AKILAH","ADRIEN","ZETTA","YOULANDA","YELENA","YAHAIRA","XUAN","WENDOLYN","VICTOR","TIJUANA","TERRELL","TERINA",
|
||||
"TERESIA","SUZI","SUNDAY","SHERELL","SHAVONDA","SHAUNTE","SHARDA","SHAKITA","SENA","RYANN","RUBI","RIVA","REGINIA","REA","RACHAL",
|
||||
"PARTHENIA","PAMULA","MONNIE","MONET","MICHAELE","MELIA","MARINE","MALKA","MAISHA","LISANDRA","LEO","LEKISHA","LEAN","LAURENCE",
|
||||
"LAKENDRA","KRYSTIN","KORTNEY","KIZZIE","KITTIE","KERA","KENDAL","KEMBERLY","KANISHA","JULENE","JULE","JOSHUA","JOHANNE","JEFFREY",
|
||||
"JAMEE","HAN","HALLEY","GIDGET","GALINA","FREDRICKA","FLETA","FATIMAH","EUSEBIA","ELZA","ELEONORE","DORTHEY","DORIA","DONELLA",
|
||||
"DINORAH","DELORSE","CLARETHA","CHRISTINIA","CHARLYN","BONG","BELKIS","AZZIE","ANDERA","AIKO","ADENA","YER","YAJAIRA","WAN",
|
||||
"VANIA","ULRIKE","TOSHIA","TIFANY","STEFANY","SHIZUE","SHENIKA","SHAWANNA","SHAROLYN","SHARILYN","SHAQUANA","SHANTAY","SEE",
|
||||
"ROZANNE","ROSELEE","RICKIE","REMONA","REANNA","RAELENE","QUINN","PHUNG","PETRONILA","NATACHA","NANCEY","MYRL","MIYOKO","MIESHA",
|
||||
"MERIDETH","MARVELLA","MARQUITTA","MARHTA","MARCHELLE","LIZETH","LIBBIE","LAHOMA","LADAWN","KINA","KATHELEEN","KATHARYN","KARISA",
|
||||
"KALEIGH","JUNIE","JULIEANN","JOHNSIE","JANEAN","JAIMEE","JACKQUELINE","HISAKO","HERMA","HELAINE","GWYNETH","GLENN","GITA",
|
||||
"EUSTOLIA","EMELINA","ELIN","EDRIS","DONNETTE","DONNETTA","DIERDRE","DENAE","DARCEL","CLAUDE","CLARISA","CINDERELLA","CHIA",
|
||||
"CHARLESETTA","CHARITA","CELSA","CASSY","CASSI","CARLEE","BRUNA","BRITTANEY","BRANDE","BILLI","BAO","ANTONETTA","ANGLA","ANGELYN",
|
||||
"ANALISA","ALANE","WENONA","WENDIE","VERONIQUE","VANNESA","TOBIE","TEMPIE","SUMIKO","SULEMA","SPARKLE","SOMER","SHEBA","SHAYNE",
|
||||
"SHARICE","SHANEL","SHALON","SAGE","ROY","ROSIO","ROSELIA","RENAY","REMA","REENA","PORSCHE","PING","PEG","OZIE","ORETHA","ORALEE",
|
||||
"ODA","NU","NGAN","NAKESHA","MILLY","MARYBELLE","MARLIN","MARIS","MARGRETT","MARAGARET","MANIE","LURLENE","LILLIA","LIESELOTTE",
|
||||
"LAVELLE","LASHAUNDA","LAKEESHA","KEITH","KAYCEE","KALYN","JOYA","JOETTE","JENAE","JANIECE","ILLA","GRISEL","GLAYDS","GENEVIE",
|
||||
"GALA","FREDDA","FRED","ELMER","ELEONOR","DEBERA","DEANDREA","DAN","CORRINNE","CORDIA","CONTESSA","COLENE","CLEOTILDE","CHARLOTT",
|
||||
"CHANTAY","CECILLE","BEATRIS","AZALEE","ARLEAN","ARDATH","ANJELICA","ANJA","ALFREDIA","ALEISHA","ADAM","ZADA","YUONNE","XIAO",
|
||||
"WILLODEAN","WHITLEY","VENNIE","VANNA","TYISHA","TOVA","TORIE","TONISHA","TILDA","TIEN","TEMPLE","SIRENA","SHERRIL","SHANTI",
|
||||
"SHAN","SENAIDA","SAMELLA","ROBBYN","RENDA","REITA","PHEBE","PAULITA","NOBUKO","NGUYET","NEOMI","MOON","MIKAELA","MELANIA",
|
||||
"MAXIMINA","MARG","MAISIE","LYNNA","LILLI","LAYNE","LASHAUN","LAKENYA","LAEL","KIRSTIE","KATHLINE","KASHA","KARLYN","KARIMA",
|
||||
"JOVAN","JOSEFINE","JENNELL","JACQUI","JACKELYN","HYO","HIEN","GRAZYNA","FLORRIE","FLORIA","ELEONORA","DWANA","DORLA","DONG",
|
||||
"DELMY","DEJA","DEDE","DANN","CRYSTA","CLELIA","CLARIS","CLARENCE","CHIEKO","CHERLYN","CHERELLE","CHARMAIN","CHARA","CAMMY","BEE",
|
||||
"ARNETTE","ARDELLE","ANNIKA","AMIEE","AMEE","ALLENA","YVONE","YUKI","YOSHIE","YEVETTE","YAEL","WILLETTA","VONCILE","VENETTA",
|
||||
"TULA","TONETTE","TIMIKA","TEMIKA","TELMA","TEISHA","TAREN","TA","STACEE","SHIN","SHAWNTA","SATURNINA","RICARDA","POK","PASTY",
|
||||
"ONIE","NUBIA","MORA","MIKE","MARIELLE","MARIELLA","MARIANELA","MARDELL","MANY","LUANNA","LOISE","LISABETH","LINDSY","LILLIANA",
|
||||
"LILLIAM","LELAH","LEIGHA","LEANORA","LANG","KRISTEEN","KHALILAH","KEELEY","KANDRA","JUNKO","JOAQUINA","JERLENE","JANI","JAMIKA",
|
||||
"JAME","HSIU","HERMILA","GOLDEN","GENEVIVE","EVIA","EUGENA","EMMALINE","ELFREDA","ELENE","DONETTE","DELCIE","DEEANNA","DARCEY",
|
||||
"CUC","CLARINDA","CIRA","CHAE","CELINDA","CATHERYN","CATHERIN","CASIMIRA","CARMELIA","CAMELLIA","BREANA","BOBETTE","BERNARDINA",
|
||||
"BEBE","BASILIA","ARLYNE","AMAL","ALAYNA","ZONIA","ZENIA","YURIKO","YAEKO","WYNELL","WILLOW","WILLENA","VERNIA","TU","TRAVIS",
|
||||
"TORA","TERRILYN","TERICA","TENESHA","TAWNA","TAJUANA","TAINA","STEPHNIE","SONA","SOL","SINA","SHONDRA","SHIZUKO","SHERLENE",
|
||||
"SHERICE","SHARIKA","ROSSIE","ROSENA","RORY","RIMA","RIA","RHEBA","RENNA","PETER","NATALYA","NANCEE","MELODI","MEDA","MAXIMA",
|
||||
"MATHA","MARKETTA","MARICRUZ","MARCELENE","MALVINA","LUBA","LOUETTA","LEIDA","LECIA","LAURAN","LASHAWNA","LAINE","KHADIJAH",
|
||||
"KATERINE","KASI","KALLIE","JULIETTA","JESUSITA","JESTINE","JESSIA","JEREMY","JEFFIE","JANYCE","ISADORA","GEORGIANNE","FIDELIA",
|
||||
"EVITA","EURA","EULAH","ESTEFANA","ELSY","ELIZABET","ELADIA","DODIE","DION","DIA","DENISSE","DELORAS","DELILA","DAYSI","DAKOTA",
|
||||
"CURTIS","CRYSTLE","CONCHA","COLBY","CLARETTA","CHU","CHRISTIA","CHARLSIE","CHARLENA","CARYLON","BETTYANN","ASLEY","ASHLEA",
|
||||
"AMIRA","AI","AGUEDA","AGNUS","YUETTE","VINITA","VICTORINA","TYNISHA","TREENA","TOCCARA","TISH","THOMASENA","TEGAN","SOILA",
|
||||
"SHILOH","SHENNA","SHARMAINE","SHANTAE","SHANDI","SEPTEMBER","SARAN","SARAI","SANA","SAMUEL","SALLEY","ROSETTE","ROLANDE","REGINE",
|
||||
"OTELIA","OSCAR","OLEVIA","NICHOLLE","NECOLE","NAIDA","MYRTA","MYESHA","MITSUE","MINTA","MERTIE","MARGY","MAHALIA","MADALENE",
|
||||
"LOVE","LOURA","LOREAN","LEWIS","LESHA","LEONIDA","LENITA","LAVONE","LASHELL","LASHANDRA","LAMONICA","KIMBRA","KATHERINA","KARRY",
|
||||
"KANESHA","JULIO","JONG","JENEVA","JAQUELYN","HWA","GILMA","GHISLAINE","GERTRUDIS","FRANSISCA","FERMINA","ETTIE","ETSUKO","ELLIS",
|
||||
"ELLAN","ELIDIA","EDRA","DORETHEA","DOREATHA","DENYSE","DENNY","DEETTA","DAINE","CYRSTAL","CORRIN","CAYLA","CARLITA","CAMILA",
|
||||
"BURMA","BULA","BUENA","BLAKE","BARABARA","AVRIL","AUSTIN","ALAINE","ZANA","WILHEMINA","WANETTA","VIRGIL","VI","VERONIKA","VERNON",
|
||||
"VERLINE","VASILIKI","TONITA","TISA","TEOFILA","TAYNA","TAUNYA","TANDRA","TAKAKO","SUNNI","SUANNE","SIXTA","SHARELL","SEEMA",
|
||||
"RUSSELL","ROSENDA","ROBENA","RAYMONDE","PEI","PAMILA","OZELL","NEIDA","NEELY","MISTIE","MICHA","MERISSA","MAURITA","MARYLN",
|
||||
"MARYETTA","MARSHALL","MARCELL","MALENA","MAKEDA","MADDIE","LOVETTA","LOURIE","LORRINE","LORILEE","LESTER","LAURENA","LASHAY",
|
||||
"LARRAINE","LAREE","LACRESHA","KRISTLE","KRISHNA","KEVA","KEIRA","KAROLE","JOIE","JINNY","JEANNETTA","JAMA","HEIDY","GILBERTE",
|
||||
"GEMA","FAVIOLA","EVELYNN","ENDA","ELLI","ELLENA","DIVINA","DAGNY","COLLENE","CODI","CINDIE","CHASSIDY","CHASIDY","CATRICE",
|
||||
"CATHERINA","CASSEY","CAROLL","CARLENA","CANDRA","CALISTA","BRYANNA","BRITTENY","BEULA","BARI","AUDRIE","AUDRIA","ARDELIA",
|
||||
"ANNELLE","ANGILA","ALONA","ALLYN","DOUGLAS","ROGER","JONATHAN","RALPH","NICHOLAS","BENJAMIN","BRUCE","HARRY","WAYNE","STEVE",
|
||||
"HOWARD","ERNEST","PHILLIP","TODD","CRAIG","ALAN","PHILIP","EARL","DANNY","BRYAN","STANLEY","LEONARD","NATHAN","MANUEL","RODNEY",
|
||||
"MARVIN","VINCENT","JEFFERY","JEFF","CHAD","JACOB","ALFRED","BRADLEY","HERBERT","FREDERICK","EDWIN","DON","RICKY","RANDALL",
|
||||
"BARRY","BERNARD","LEROY","MARCUS","THEODORE","CLIFFORD","MIGUEL","JIM","TOM","CALVIN","BILL","LLOYD","DEREK","WARREN","DARRELL",
|
||||
"JEROME","FLOYD","ALVIN","TIM","GORDON","GREG","JORGE","DUSTIN","PEDRO","DERRICK","ZACHARY","HERMAN","GLEN","HECTOR","RICARDO",
|
||||
"RICK","BRENT","RAMON","GILBERT","MARC","REGINALD","RUBEN","NATHANIEL","RAFAEL","EDGAR","MILTON","RAUL","BEN","CHESTER","DUANE",
|
||||
"FRANKLIN","BRAD","RON","ROLAND","ARNOLD","HARVEY","JARED","ERIK","DARRYL","NEIL","JAVIER","FERNANDO","CLINTON","TED","MATHEW",
|
||||
"TYRONE","DARREN","LANCE","KURT","ALLAN","NELSON","GUY","CLAYTON","HUGH","MAX","DWAYNE","DWIGHT","ARMANDO","FELIX","EVERETT",
|
||||
"IAN","WALLACE","KEN","BOB","ALFREDO","ALBERTO","DAVE","IVAN","BYRON","ISAAC","MORRIS","CLIFTON","WILLARD","ROSS","ANDY",
|
||||
"SALVADOR","KIRK","SERGIO","SETH","KENT","TERRANCE","EDUARDO","TERRENCE","ENRIQUE","WADE","STUART","FREDRICK","ARTURO","ALEJANDRO",
|
||||
"NICK","LUTHER","WENDELL","JEREMIAH","JULIUS","OTIS","TREVOR","OLIVER","LUKE","HOMER","GERARD","DOUG","KENNY","HUBERT","LYLE",
|
||||
"MATT","ALFONSO","ORLANDO","REX","CARLTON","ERNESTO","NEAL","PABLO","LORENZO","OMAR","WILBUR","GRANT","HORACE","RODERICK",
|
||||
"ABRAHAM","WILLIS","RICKEY","ANDRES","CESAR","JOHNATHAN","MALCOLM","RUDOLPH","DAMON","KELVIN","PRESTON","ALTON","ARCHIE","MARCO",
|
||||
"WM","PETE","RANDOLPH","GARRY","GEOFFREY","JONATHON","FELIPE","GERARDO","ED","DOMINIC","DELBERT","COLIN","GUILLERMO","EARNEST",
|
||||
"LUCAS","BENNY","SPENCER","RODOLFO","MYRON","EDMUND","GARRETT","SALVATORE","CEDRIC","LOWELL","GREGG","SHERMAN","WILSON",
|
||||
"SYLVESTER","ROOSEVELT","ISRAEL","JERMAINE","FORREST","WILBERT","LELAND","SIMON","CLARK","IRVING","BRYANT","OWEN","RUFUS",
|
||||
"WOODROW","KRISTOPHER","MACK","LEVI","MARCOS","GUSTAVO","JAKE","LIONEL","GILBERTO","CLINT","NICOLAS","ISMAEL","ORVILLE","ERVIN",
|
||||
"DEWEY","AL","WILFRED","JOSH","HUGO","IGNACIO","CALEB","TOMAS","SHELDON","ERICK","STEWART","DOYLE","DARREL","ROGELIO","TERENCE",
|
||||
"SANTIAGO","ALONZO","ELIAS","BERT","ELBERT","RAMIRO","CONRAD","NOAH","GRADY","PHIL","CORNELIUS","LAMAR","ROLANDO","CLAY","PERCY",
|
||||
"DEXTER","BRADFORD","DARIN","AMOS","MOSES","IRVIN","SAUL","ROMAN","RANDAL","TIMMY","DARRIN","WINSTON","BRENDAN","ABEL","DOMINICK",
|
||||
"BOYD","EMILIO","ELIJAH","DOMINGO","EMMETT","MARLON","EMANUEL","JERALD","EDMOND","EMIL","DEWAYNE","WILL","OTTO","TEDDY",
|
||||
"REYNALDO","BRET","JESS","TRENT","HUMBERTO","EMMANUEL","STEPHAN","VICENTE","LAMONT","GARLAND","MILES","EFRAIN","HEATH","RODGER",
|
||||
"HARLEY","ETHAN","ELDON","ROCKY","PIERRE","JUNIOR","FREDDY","ELI","BRYCE","ANTOINE","STERLING","CHASE","GROVER","ELTON",
|
||||
"CLEVELAND","DYLAN","CHUCK","DAMIAN","REUBEN","STAN","AUGUST","LEONARDO","JASPER","RUSSEL","ERWIN","BENITO","HANS","MONTE",
|
||||
"BLAINE","ERNIE","CURT","QUENTIN","AGUSTIN","MURRAY","JAMAL","ADOLFO","HARRISON","TYSON","BURTON","BRADY","ELLIOTT","WILFREDO",
|
||||
"BART","JARROD","VANCE","DENIS","DAMIEN","JOAQUIN","HARLAN","DESMOND","ELLIOT","DARWIN","GREGORIO","BUDDY","XAVIER","KERMIT",
|
||||
"ROSCOE","ESTEBAN","ANTON","SOLOMON","SCOTTY","NORBERT","ELVIN","WILLIAMS","NOLAN","ROD","QUINTON","HAL","BRAIN","ROB","ELWOOD",
|
||||
"KENDRICK","DARIUS","MOISES","FIDEL","THADDEUS","CLIFF","MARCEL","JACKSON","RAPHAEL","BRYON","ARMAND","ALVARO","JEFFRY","DANE",
|
||||
"JOESPH","THURMAN","NED","RUSTY","MONTY","FABIAN","REGGIE","MASON","GRAHAM","ISAIAH","VAUGHN","GUS","LOYD","DIEGO","ADOLPH",
|
||||
"NORRIS","MILLARD","ROCCO","GONZALO","DERICK","RODRIGO","WILEY","RIGOBERTO","ALPHONSO","TY","NOE","VERN","REED","JEFFERSON",
|
||||
"ELVIS","BERNARDO","MAURICIO","HIRAM","DONOVAN","BASIL","RILEY","NICKOLAS","MAYNARD","SCOT","VINCE","QUINCY","EDDY","SEBASTIAN",
|
||||
"FEDERICO","ULYSSES","HERIBERTO","DONNELL","COLE","DAVIS","GAVIN","EMERY","WARD","ROMEO","JAYSON","DANTE","CLEMENT","COY",
|
||||
"MAXWELL","JARVIS","BRUNO","ISSAC","DUDLEY","BROCK","SANFORD","CARMELO","BARNEY","NESTOR","STEFAN","DONNY","ART","LINWOOD","BEAU",
|
||||
"WELDON","GALEN","ISIDRO","TRUMAN","DELMAR","JOHNATHON","SILAS","FREDERIC","DICK","IRWIN","MERLIN","CHARLEY","MARCELINO","HARRIS",
|
||||
"CARLO","TRENTON","KURTIS","HUNTER","AURELIO","WINFRED","VITO","COLLIN","DENVER","CARTER","LEONEL","EMORY","PASQUALE","MOHAMMAD",
|
||||
"MARIANO","DANIAL","LANDON","DIRK","BRANDEN","ADAN","BUFORD","GERMAN","WILMER","EMERSON","ZACHERY","FLETCHER","JACQUES","ERROL",
|
||||
"DALTON","MONROE","JOSUE","EDWARDO","BOOKER","WILFORD","SONNY","SHELTON","CARSON","THERON","RAYMUNDO","DAREN","HOUSTON","ROBBY",
|
||||
"LINCOLN","GENARO","BENNETT","OCTAVIO","CORNELL","HUNG","ARRON","ANTONY","HERSCHEL","GIOVANNI","GARTH","CYRUS","CYRIL","RONNY",
|
||||
"LON","FREEMAN","DUNCAN","KENNITH","CARMINE","ERICH","CHADWICK","WILBURN","RUSS","REID","MYLES","ANDERSON","MORTON","JONAS",
|
||||
"FOREST","MITCHEL","MERVIN","ZANE","RICH","JAMEL","LAZARO","ALPHONSE","RANDELL","MAJOR","JARRETT","BROOKS","ABDUL","LUCIANO",
|
||||
"SEYMOUR","EUGENIO","MOHAMMED","VALENTIN","CHANCE","ARNULFO","LUCIEN","FERDINAND","THAD","EZRA","ALDO","RUBIN","ROYAL","MITCH",
|
||||
"EARLE","ABE","WYATT","MARQUIS","LANNY","KAREEM","JAMAR","BORIS","ISIAH","EMILE","ELMO","ARON","LEOPOLDO","EVERETTE","JOSEF",
|
||||
"ELOY","RODRICK","REINALDO","LUCIO","JERROD","WESTON","HERSHEL","BARTON","PARKER","LEMUEL","BURT","JULES","GIL","ELISEO","AHMAD",
|
||||
"NIGEL","EFREN","ANTWAN","ALDEN","MARGARITO","COLEMAN","DINO","OSVALDO","LES","DEANDRE","NORMAND","KIETH","TREY","NORBERTO",
|
||||
"NAPOLEON","JEROLD","FRITZ","ROSENDO","MILFORD","CHRISTOPER","ALFONZO","LYMAN","JOSIAH","BRANT","WILTON","RICO","JAMAAL","DEWITT",
|
||||
"BRENTON","OLIN","FOSTER","FAUSTINO","CLAUDIO","JUDSON","GINO","EDGARDO","ALEC","TANNER","JARRED","DONN","TAD","PRINCE","PORFIRIO",
|
||||
"ODIS","LENARD","CHAUNCEY","TOD","MEL","MARCELO","KORY","AUGUSTUS","KEVEN","HILARIO","BUD","SAL","ORVAL","MAURO","ZACHARIAH",
|
||||
"OLEN","ANIBAL","MILO","JED","DILLON","AMADO","NEWTON","LENNY","RICHIE","HORACIO","BRICE","MOHAMED","DELMER","DARIO","REYES","MAC",
|
||||
"JONAH","JERROLD","ROBT","HANK","RUPERT","ROLLAND","KENTON","DAMION","ANTONE","WALDO","FREDRIC","BRADLY","KIP","BURL","WALKER",
|
||||
"TYREE","JEFFEREY","AHMED","WILLY","STANFORD","OREN","NOBLE","MOSHE","MIKEL","ENOCH","BRENDON","QUINTIN","JAMISON","FLORENCIO",
|
||||
"DARRICK","TOBIAS","HASSAN","GIUSEPPE","DEMARCUS","CLETUS","TYRELL","LYNDON","KEENAN","WERNER","GERALDO","COLUMBUS","CHET",
|
||||
"BERTRAM","MARKUS","HUEY","HILTON","DWAIN","DONTE","TYRON","OMER","ISAIAS","HIPOLITO","FERMIN","ADALBERTO","BO","BARRETT",
|
||||
"TEODORO","MCKINLEY","MAXIMO","GARFIELD","RALEIGH","LAWERENCE","ABRAM","RASHAD","KING","EMMITT","DARON","SAMUAL","MIQUEL",
|
||||
"EUSEBIO","DOMENIC","DARRON","BUSTER","WILBER","RENATO","JC","HOYT","HAYWOOD","EZEKIEL","CHAS","FLORENTINO","ELROY","CLEMENTE",
|
||||
"ARDEN","NEVILLE","EDISON","DESHAWN","NATHANIAL","JORDON","DANILO","CLAUD","SHERWOOD","RAYMON","RAYFORD","CRISTOBAL","AMBROSE",
|
||||
"TITUS","HYMAN","FELTON","EZEQUIEL","ERASMO","STANTON","LONNY","LEN","IKE","MILAN","LINO","JAROD","HERB","ANDREAS","WALTON",
|
||||
"RHETT","PALMER","DOUGLASS","CORDELL","OSWALDO","ELLSWORTH","VIRGILIO","TONEY","NATHANAEL","DEL","BENEDICT","MOSE","JOHNSON",
|
||||
"ISREAL","GARRET","FAUSTO","ASA","ARLEN","ZACK","WARNER","MODESTO","FRANCESCO","MANUAL","GAYLORD","GASTON","FILIBERTO","DEANGELO",
|
||||
"MICHALE","GRANVILLE","WES","MALIK","ZACKARY","TUAN","ELDRIDGE","CRISTOPHER","CORTEZ","ANTIONE","MALCOM","LONG","KOREY","JOSPEH",
|
||||
"COLTON","WAYLON","VON","HOSEA","SHAD","SANTO","RUDOLF","ROLF","REY","RENALDO","MARCELLUS","LUCIUS","KRISTOFER","BOYCE","BENTON",
|
||||
"HAYDEN","HARLAND","ARNOLDO","RUEBEN","LEANDRO","KRAIG","JERRELL","JEROMY","HOBERT","CEDRICK","ARLIE","WINFORD","WALLY","LUIGI",
|
||||
"KENETH","JACINTO","GRAIG","FRANKLYN","EDMUNDO","SID","PORTER","LEIF","JERAMY","BUCK","WILLIAN","VINCENZO","SHON","LYNWOOD","JERE",
|
||||
"HAI","ELDEN","DORSEY","DARELL","BRODERICK","ALONSO"));
|
||||
private static final ArrayList<String> names = new ArrayList<>();
|
||||
//Instance variables
|
||||
private ArrayList<Long> sums; //Holds the score based on the sum of the characters in the name
|
||||
private ArrayList<Long> prod; //Holds the score based on the sum of the characters and the location in alphabetical order
|
||||
@@ -411,11 +49,35 @@ public class Problem22 extends Problem{
|
||||
//Constructor
|
||||
public Problem22(){
|
||||
super("What is the total of all the name scores in this file?");
|
||||
sums = new ArrayList<Long>();
|
||||
prod = new ArrayList<Long>();
|
||||
sums = new ArrayList<>();
|
||||
prod = new ArrayList<>();
|
||||
sum = 0;
|
||||
}
|
||||
//Operational functions
|
||||
//Read words from file into array
|
||||
private void readFile(){
|
||||
if(!names.isEmpty()){
|
||||
return;
|
||||
}
|
||||
File file = new File(FILE_NAME);
|
||||
if(file.exists()){
|
||||
try{
|
||||
List<String> lines = Files.readAllLines(file.toPath());
|
||||
for(String line : lines){
|
||||
String[] words = line.split(",");
|
||||
for(String word : words){
|
||||
names.add(word.replace("\"", ""));
|
||||
}
|
||||
}
|
||||
}
|
||||
catch(IOException error){
|
||||
throw new InvalidParameterException(error.getMessage());
|
||||
}
|
||||
}
|
||||
else{
|
||||
throw new InvalidParameterException("File not found");
|
||||
}
|
||||
}
|
||||
//Solve the problem
|
||||
@Override
|
||||
public void solve(){
|
||||
@@ -427,6 +89,9 @@ public class Problem22 extends Problem{
|
||||
//Start the timer
|
||||
timer.start();
|
||||
|
||||
|
||||
//Read the file into the array
|
||||
readFile();
|
||||
//Sort all the names
|
||||
Collections.sort(names);
|
||||
//Step through every name adding up the values of the characters
|
||||
@@ -468,7 +133,7 @@ public class Problem22 extends Problem{
|
||||
return String.format("The answer to the question is %d", sum);
|
||||
}
|
||||
//Returns the vector of the names being scored
|
||||
public static ArrayList<String> getNames(){
|
||||
public static List<String> getNames(){
|
||||
return names;
|
||||
}
|
||||
//Returns the sum of the names scores
|
||||
|
||||
@@ -81,7 +81,7 @@ public class Problem25 extends Problem{
|
||||
@Override
|
||||
public String getResult(){
|
||||
solvedCheck("result");
|
||||
return String.format("The first Fibonacci number with %d digits is %s\nIts index is %d", NUM_DIGITS, number.toString(), index);
|
||||
return String.format("The first Fibonacci number with %d digits is %s%nIts index is %d", NUM_DIGITS, number.toString(), index);
|
||||
}
|
||||
//Returns the Fibonacci number asked for
|
||||
public BigInteger getNumber(){
|
||||
|
||||
@@ -56,7 +56,7 @@ public class Problem26 extends Problem{
|
||||
//Start with 1/2 and find out how long the longest cycle is by checking the remainders
|
||||
//Loop through every number from 2-999 and use it for the denominator
|
||||
for(int denominator = 2;denominator <= TOP_NUM;++denominator){
|
||||
ArrayList<Integer> denomList = new ArrayList<Integer>();
|
||||
ArrayList<Integer> denomList = new ArrayList<>();
|
||||
boolean endFound = false; //A flag for when we have found an end to the number (either a cycle or a 0 for remainder)
|
||||
boolean cycleFound = false; //A flag to indicate a cycle was detected
|
||||
int numerator = 1; //The numerator that will be divided. Always starts at 1
|
||||
@@ -80,12 +80,10 @@ public class Problem26 extends Problem{
|
||||
numerator = remainder * 10;
|
||||
}
|
||||
//If a cycle was found check the size of the list against the largest cycle
|
||||
if(cycleFound){
|
||||
//If it is larger than the largest, set it as the new largest
|
||||
if(denomList.size() > longestCycle){
|
||||
longestCycle = denomList.size();
|
||||
longestNumber = denominator;
|
||||
}
|
||||
//If it is larger than the largest, set it as the new largest
|
||||
if(cycleFound && (denomList.size() > longestCycle)){
|
||||
longestCycle = denomList.size();
|
||||
longestNumber = denominator;
|
||||
}
|
||||
}
|
||||
|
||||
@@ -108,7 +106,7 @@ public class Problem26 extends Problem{
|
||||
@Override
|
||||
public String getResult(){
|
||||
solvedCheck("result");
|
||||
return String.format("The longest cycle is %d digits long\nIt started with the number %d", longestCycle, longestNumber);
|
||||
return String.format("The longest cycle is %d digits long%nIt started with the number %d", longestCycle, longestNumber);
|
||||
}
|
||||
//Returns the length of the longest cycle
|
||||
public int getLongestCycle(){
|
||||
|
||||
@@ -99,7 +99,7 @@ public class Problem27 extends Problem{
|
||||
@Override
|
||||
public String getResult(){
|
||||
solvedCheck("result");
|
||||
return String.format("The greatest number of primes found is %d\nIt was found with A = %d, B = %d\nThe product of A and B is %d", topN, topA, topB, topA * topB);
|
||||
return String.format("The greatest number of primes found is %d%nIt was found with A = %d, B = %d%nThe product of A and B is %d", topN, topA, topB, topA * topB);
|
||||
}
|
||||
//Returns the top A that was generated
|
||||
public int getTopA(){
|
||||
|
||||
@@ -24,6 +24,7 @@ package com.mattrixwv.project_euler.problems;
|
||||
|
||||
|
||||
import java.util.ArrayList;
|
||||
import java.util.List;
|
||||
|
||||
|
||||
public class Problem28 extends Problem{
|
||||
@@ -150,7 +151,7 @@ public class Problem28 extends Problem{
|
||||
return String.format("The sum of the diagonals in the given grid is %d", sumOfDiagonals);
|
||||
}
|
||||
//Returns the grid
|
||||
public ArrayList<ArrayList<Integer>> getGrid(){
|
||||
public List<ArrayList<Integer>> getGrid(){
|
||||
solvedCheck("grid");
|
||||
return grid;
|
||||
}
|
||||
|
||||
@@ -25,6 +25,7 @@ package com.mattrixwv.project_euler.problems;
|
||||
|
||||
import java.math.BigInteger;
|
||||
import java.util.ArrayList;
|
||||
import java.util.List;
|
||||
|
||||
|
||||
public class Problem29 extends Problem{
|
||||
@@ -41,7 +42,7 @@ public class Problem29 extends Problem{
|
||||
//Constructor
|
||||
public Problem29(){
|
||||
super(String.format("How many distinct terms are in the sequence generated by a^b for %d <= a <= %d and %d <= b <= %d?", BOTTOM_A, TOP_A, BOTTOM_B, TOP_B));
|
||||
unique = new ArrayList<BigInteger>();
|
||||
unique = new ArrayList<>();
|
||||
}
|
||||
//Operational functions
|
||||
//Solve the problem
|
||||
@@ -106,7 +107,7 @@ public class Problem29 extends Problem{
|
||||
return TOP_B;
|
||||
}
|
||||
//Returns a vector of all the unique values for a^b
|
||||
public ArrayList<BigInteger> getUnique(){
|
||||
public List<BigInteger> getUnique(){
|
||||
solvedCheck("unique values for a^b");
|
||||
return unique;
|
||||
}
|
||||
|
||||
@@ -24,6 +24,7 @@ package com.mattrixwv.project_euler.problems;
|
||||
|
||||
|
||||
import java.util.ArrayList;
|
||||
import java.util.List;
|
||||
|
||||
import com.mattrixwv.ArrayAlgorithms;
|
||||
|
||||
@@ -42,13 +43,13 @@ public class Problem30 extends Problem{
|
||||
//Operational functions
|
||||
public Problem30(){
|
||||
super("Find the sum of all the numbers that can be written as the sum of the fifth powers of their digits.");
|
||||
sumOfFifthNumbers = new ArrayList<Long>();
|
||||
sumOfFifthNumbers = new ArrayList<>();
|
||||
sum = 0;
|
||||
}
|
||||
//Operational functions
|
||||
//Returns an ArrayList with the individual digits of the number passed to it
|
||||
private ArrayList<Long> getDigits(long num){
|
||||
ArrayList<Long> listOfDigits = new ArrayList<Long>(); //This ArrayList holds the individual digits of num
|
||||
ArrayList<Long> listOfDigits = new ArrayList<>(); //This ArrayList holds the individual digits of num
|
||||
//The easiest way to get the individual digits of a number is by converting it to a string
|
||||
String digits = Long.toString(num);
|
||||
//Start with the first digit, convert it to an integer, store it in the ArrayList, and move to the next digit
|
||||
@@ -116,7 +117,7 @@ public class Problem30 extends Problem{
|
||||
return TOP_NUM;
|
||||
}
|
||||
//This returns a copy of the vector holding all the numbers that are the sum of the fifth power of their digits
|
||||
public ArrayList<Long> getListOfSumOfFifths(){
|
||||
public List<Long> getListOfSumOfFifths(){
|
||||
solvedCheck("list of all numbers that are the sum of the 5th power of their digits");
|
||||
return sumOfFifthNumbers;
|
||||
}
|
||||
|
||||
@@ -107,10 +107,8 @@ public class Problem32 extends Problem{
|
||||
break;
|
||||
}
|
||||
//If the current number is a pandigital that doesn't already exist in the list add it to the list
|
||||
if(isPandigital(currentProductSet)){
|
||||
if(!listOfProducts.contains(currentProductSet)){
|
||||
listOfProducts.add(currentProductSet);
|
||||
}
|
||||
if(isPandigital(currentProductSet) && !listOfProducts.contains(currentProductSet)){
|
||||
listOfProducts.add(currentProductSet);
|
||||
}
|
||||
}
|
||||
}
|
||||
@@ -157,7 +155,7 @@ public class Problem32 extends Problem{
|
||||
@Override
|
||||
public String getResult(){
|
||||
solvedCheck("result");
|
||||
return String.format("There are %d unique 1-9 pandigitals\nThe sum of the products of these pandigitals is %d", listOfProducts.size(), sumOfPandigitals);
|
||||
return String.format("There are %d unique 1-9 pandigitals%nThe sum of the products of these pandigitals is %d", listOfProducts.size(), sumOfPandigitals);
|
||||
}
|
||||
//Returns the sum of the pandigitals
|
||||
public long getSumOfPandigitals(){
|
||||
|
||||
@@ -67,50 +67,19 @@ public class Problem37 extends Problem{
|
||||
}
|
||||
//Loop until truncPrimes contains 11 elements
|
||||
while(truncPrimes.size() < 11){
|
||||
boolean isTruncPrime = true;
|
||||
//Get the next prime
|
||||
currentPrime = sieve.next();
|
||||
//Convert the prime to a string
|
||||
String primeString = Long.toString(currentPrime);
|
||||
//If the string contains an even digit move to the next prime
|
||||
for(int strLoc = 0;(strLoc < primeString.length()) && (isTruncPrime);++strLoc){
|
||||
//Allow 2 to be the first digit
|
||||
if((strLoc == 0) && (primeString.charAt(strLoc) == '2')){
|
||||
continue;
|
||||
}
|
||||
switch(primeString.charAt(strLoc)){
|
||||
case '0' :
|
||||
case '2' :
|
||||
case '4' :
|
||||
case '6' :
|
||||
case '8' : isTruncPrime = false; break;
|
||||
}
|
||||
}
|
||||
boolean isTruncPrime = containsEvenDigits(primeString);
|
||||
//Start removing digits from the left and see if the number stays prime
|
||||
if(isTruncPrime){
|
||||
for(int truncLoc = 1;truncLoc < primeString.length();++truncLoc){
|
||||
//Create a substring of the prime, removing the needed digits from the left
|
||||
String primeSubstring = primeString.substring(truncLoc);
|
||||
//Convert the string to an int and see if the number is still prime
|
||||
long newPrime = Long.parseLong(primeSubstring);
|
||||
if(!NumberAlgorithms.isPrime(newPrime)){
|
||||
isTruncPrime = false;
|
||||
break;
|
||||
}
|
||||
}
|
||||
isTruncPrime = removeLeft(primeString);
|
||||
}
|
||||
//Start removing digits from the right and see if the number stays prime
|
||||
if(isTruncPrime){
|
||||
for(int truncLoc = 1;truncLoc < primeString.length();++truncLoc){
|
||||
//Create a substring of the prime, removing the needed digits from the right
|
||||
String primeSubstring = primeString.substring(0, primeString.length() - truncLoc);
|
||||
//Convert the string to an int and see if the number is still prime
|
||||
long newPrime = Long.parseLong(primeSubstring);
|
||||
if(!NumberAlgorithms.isPrime(newPrime)){
|
||||
isTruncPrime = false;
|
||||
break;
|
||||
}
|
||||
}
|
||||
isTruncPrime = removeRight(primeString);
|
||||
}
|
||||
//If the number remained prime through all operations add it to the vector
|
||||
if(isTruncPrime){
|
||||
@@ -127,6 +96,55 @@ public class Problem37 extends Problem{
|
||||
//Throw a flag to show the problem is solved
|
||||
solved = true;
|
||||
}
|
||||
//Check if the string contains any digits that are even
|
||||
private boolean containsEvenDigits(String primeString){
|
||||
boolean isTruncPrime = true;
|
||||
for(int strLoc = 0;(strLoc < primeString.length()) && (isTruncPrime);++strLoc){
|
||||
//Allow 2 to be the first digit
|
||||
if((strLoc == 0) && (primeString.charAt(strLoc) == '2')){
|
||||
continue;
|
||||
}
|
||||
switch(primeString.charAt(strLoc)){
|
||||
case '0' :
|
||||
case '2' :
|
||||
case '4' :
|
||||
case '6' :
|
||||
case '8' : isTruncPrime = false; break;
|
||||
default: break;
|
||||
}
|
||||
}
|
||||
return isTruncPrime;
|
||||
}
|
||||
//Check if the number remains prime when you remove numbers from the left
|
||||
private boolean removeLeft(String primeString){
|
||||
boolean isTruncPrime = true;
|
||||
for(int truncLoc = 1;truncLoc < primeString.length();++truncLoc){
|
||||
//Create a substring of the prime, removing the needed digits from the left
|
||||
String primeSubstring = primeString.substring(truncLoc);
|
||||
//Convert the string to an int and see if the number is still prime
|
||||
long newPrime = Long.parseLong(primeSubstring);
|
||||
if(!NumberAlgorithms.isPrime(newPrime)){
|
||||
isTruncPrime = false;
|
||||
break;
|
||||
}
|
||||
}
|
||||
return isTruncPrime;
|
||||
}
|
||||
//Check if the number remains prime when you remove numbers from the right
|
||||
private boolean removeRight(String primeString){
|
||||
boolean isTruncPrime = true;
|
||||
for(int truncLoc = 1;truncLoc < primeString.length();++truncLoc){
|
||||
//Create a substring of the prime, removing the needed digits from the right
|
||||
String primeSubstring = primeString.substring(0, primeString.length() - truncLoc);
|
||||
//Convert the string to an int and see if the number is still prime
|
||||
long newPrime = Long.parseLong(primeSubstring);
|
||||
if(!NumberAlgorithms.isPrime(newPrime)){
|
||||
isTruncPrime = false;
|
||||
break;
|
||||
}
|
||||
}
|
||||
return isTruncPrime;
|
||||
}
|
||||
//Reset the problem so it can be run again
|
||||
@Override
|
||||
public void reset(){
|
||||
|
||||
@@ -25,6 +25,7 @@ package com.mattrixwv.project_euler.problems;
|
||||
|
||||
import java.util.ArrayList;
|
||||
import java.util.Collections;
|
||||
import java.util.List;
|
||||
|
||||
|
||||
public class Problem4 extends Problem{
|
||||
@@ -38,7 +39,7 @@ public class Problem4 extends Problem{
|
||||
//Constructor
|
||||
public Problem4(){
|
||||
super("Find the largest palindrome made from the product of two 3-digit numbers");
|
||||
palindromes = new ArrayList<Integer>();
|
||||
palindromes = new ArrayList<>();
|
||||
}
|
||||
//Operational functions
|
||||
//Solve the problem
|
||||
@@ -96,7 +97,7 @@ public class Problem4 extends Problem{
|
||||
return String.format("The largest palindrome is %d", palindromes.get(palindromes.size() - 1));
|
||||
}
|
||||
//Returns the list of all palindromes
|
||||
public ArrayList<Integer> getPalindromes(){
|
||||
public List<Integer> getPalindromes(){
|
||||
solvedCheck("palindromes");
|
||||
return palindromes;
|
||||
}
|
||||
|
||||
@@ -26,6 +26,7 @@ package com.mattrixwv.project_euler.problems;
|
||||
import java.io.File;
|
||||
import java.io.IOException;
|
||||
import java.nio.file.Files;
|
||||
import java.security.InvalidParameterException;
|
||||
import java.util.ArrayList;
|
||||
import java.util.List;
|
||||
|
||||
@@ -62,18 +63,18 @@ public class Problem42 extends Problem{
|
||||
}
|
||||
}
|
||||
catch(IOException error){
|
||||
throw new RuntimeException(error);
|
||||
throw new InvalidParameterException(error.getMessage());
|
||||
}
|
||||
}
|
||||
else{
|
||||
throw new RuntimeException("File not found");
|
||||
throw new InvalidParameterException("File not found");
|
||||
}
|
||||
}
|
||||
//Tet the sum of all letters in the string passed in
|
||||
private long getValueFromWord(String word){
|
||||
long sum = 0;
|
||||
for(char ch : word.toUpperCase().toCharArray()){
|
||||
long val = ch - 'A' + 1;
|
||||
long val = ch - 'A' + 1L;
|
||||
sum += val;
|
||||
}
|
||||
return sum;
|
||||
|
||||
@@ -25,6 +25,7 @@ package com.mattrixwv.project_euler.problems;
|
||||
|
||||
import java.util.HashMap;
|
||||
import java.util.List;
|
||||
import java.util.Map.Entry;
|
||||
|
||||
import com.mattrixwv.NumberAlgorithms;
|
||||
|
||||
@@ -86,18 +87,18 @@ public class Problem47 extends Problem{
|
||||
}
|
||||
|
||||
//Make sure none of the elements match
|
||||
for(Long key : factors0.keySet()){
|
||||
if(factors0.get(key).equals(factors1.get(key)) || factors0.get(key).equals(factors1.get(key)) || factors0.get(key).equals(factors3.get(key))){
|
||||
for(Entry<Long, Long> entry : factors0.entrySet()){
|
||||
if(entry.getValue().equals(factors1.get(entry.getKey())) || entry.getValue().equals(factors2.get(entry.getKey())) || entry.getValue().equals(factors3.get(entry.getKey()))){
|
||||
found = true;
|
||||
}
|
||||
}
|
||||
for(Long key : factors1.keySet()){
|
||||
if(factors1.get(key).equals(factors2.get(key)) || factors1.get(key).equals(factors2.get(key))){
|
||||
for(Entry<Long, Long> entry : factors1.entrySet()){
|
||||
if(entry.getValue().equals(factors2.get(entry.getKey())) || entry.getValue().equals(factors3.get(entry.getKey()))){
|
||||
found = true;
|
||||
}
|
||||
}
|
||||
for(Long key : factors2.keySet()){
|
||||
if(factors2.get(key).equals(factors3.get(key))){
|
||||
for(Entry<Long, Long> entry : factors2.entrySet()){
|
||||
if(entry.getValue().equals(factors3.get(entry.getKey()))){
|
||||
found = true;
|
||||
}
|
||||
}
|
||||
@@ -136,5 +137,5 @@ public class Problem47 extends Problem{
|
||||
|
||||
/* Results
|
||||
The first number is 134043
|
||||
It took 50.878 seconds to solve this problem.
|
||||
It took 51.366 seconds to solve this problem.
|
||||
*/
|
||||
|
||||
@@ -27,6 +27,7 @@ import java.util.ArrayList;
|
||||
import java.util.Collections;
|
||||
import java.util.HashSet;
|
||||
import java.util.List;
|
||||
import java.util.Set;
|
||||
|
||||
import com.mattrixwv.NumberAlgorithms;
|
||||
import com.mattrixwv.StringAlgorithms;
|
||||
@@ -77,48 +78,13 @@ public class Problem49 extends Problem{
|
||||
continue;
|
||||
}
|
||||
//Remove any even numbers and numbers smaller than the current number
|
||||
ArrayList<Integer> remaining = new ArrayList<>();
|
||||
for(String primeStr : primeStrs){
|
||||
Integer num = Integer.valueOf(primeStr);
|
||||
if(((num % 2) != 0) && (num >= prime)){
|
||||
remaining.add(num);
|
||||
}
|
||||
}
|
||||
List<Integer> remaining = removeEven(primeStrs, prime);
|
||||
//Check if there are at least 3 elements remaining
|
||||
ArrayList<Integer> matches = new ArrayList<>();
|
||||
if(remaining.size() >= 3){
|
||||
//Check if 3 elements are prime
|
||||
for(Integer num : remaining){
|
||||
if(NumberAlgorithms.isPrime(num)){
|
||||
matches.add(num);
|
||||
}
|
||||
}
|
||||
}
|
||||
List<Integer> matches = checkRemaining(remaining);
|
||||
Collections.sort(matches);
|
||||
//If there are at least 3 matches see if there are any that are equidistant
|
||||
if(matches.size() >= 3){
|
||||
HashSet<Integer> distances = new HashSet<>();
|
||||
for(int cnt1 = 0;cnt1 < matches.size();++cnt1){
|
||||
for(int cnt2 = cnt1 + 1;cnt2 < matches.size();++cnt2){
|
||||
int num = matches.get(cnt2) - matches.get(cnt1);
|
||||
if((MIN_NUMBER + num + num) <= MAX_NUMBER){
|
||||
distances.add(num);
|
||||
}
|
||||
}
|
||||
}
|
||||
for(Integer distance : distances){
|
||||
for(Integer match : matches){
|
||||
if(matches.contains(match + distance) && (matches.contains(match + distance + distance))){
|
||||
concatenationOfNumbers = match.toString() + Integer.toString(match + distance) + Integer.toString(match + distance + distance);
|
||||
}
|
||||
if(!concatenationOfNumbers.isBlank()){
|
||||
break;
|
||||
}
|
||||
}
|
||||
if(!concatenationOfNumbers.isBlank()){
|
||||
break;
|
||||
}
|
||||
}
|
||||
checkEquidistant(matches);
|
||||
}
|
||||
if(!concatenationOfNumbers.isBlank()){
|
||||
break;
|
||||
@@ -132,6 +98,54 @@ public class Problem49 extends Problem{
|
||||
//Set a flag to show the problem is solved
|
||||
solved = true;
|
||||
}
|
||||
//Remove any even and small numbers
|
||||
public List<Integer> removeEven(Set<String> primeStrs, Integer prime){
|
||||
ArrayList<Integer> remaining = new ArrayList<>();
|
||||
for(String primeStr : primeStrs){
|
||||
Integer num = Integer.valueOf(primeStr);
|
||||
if(((num % 2) != 0) && (num >= prime)){
|
||||
remaining.add(num);
|
||||
}
|
||||
}
|
||||
return remaining;
|
||||
}
|
||||
//Check that there are at least 3 prime numbers remaining
|
||||
private List<Integer> checkRemaining(List<Integer> remaining){
|
||||
ArrayList<Integer> matches = new ArrayList<>();
|
||||
if(remaining.size() >= 3){
|
||||
//Check if 3 elements are prime
|
||||
for(Integer num : remaining){
|
||||
if(NumberAlgorithms.isPrime(num)){
|
||||
matches.add(num);
|
||||
}
|
||||
}
|
||||
}
|
||||
return matches;
|
||||
}
|
||||
public void checkEquidistant(List<Integer> matches){
|
||||
HashSet<Integer> distances = new HashSet<>();
|
||||
for(int cnt1 = 0;cnt1 < matches.size();++cnt1){
|
||||
for(int cnt2 = cnt1 + 1;cnt2 < matches.size();++cnt2){
|
||||
int num = matches.get(cnt2) - matches.get(cnt1);
|
||||
if((MIN_NUMBER + num + num) <= MAX_NUMBER){
|
||||
distances.add(num);
|
||||
}
|
||||
}
|
||||
}
|
||||
for(Integer distance : distances){
|
||||
for(Integer match : matches){
|
||||
if(matches.contains(match + distance) && (matches.contains(match + distance + distance))){
|
||||
concatenationOfNumbers = match.toString() + Integer.toString(match + distance) + Integer.toString(match + distance + distance);
|
||||
}
|
||||
if(!concatenationOfNumbers.isBlank()){
|
||||
break;
|
||||
}
|
||||
}
|
||||
if(!concatenationOfNumbers.isBlank()){
|
||||
break;
|
||||
}
|
||||
}
|
||||
}
|
||||
//Reset the problem so it can be run again
|
||||
@Override
|
||||
public void reset(){
|
||||
|
||||
@@ -62,45 +62,11 @@ public class Problem50 extends Problem{
|
||||
for(long length = 1;!tooLong;++length){
|
||||
//If the length is even you only need to check offset 0 because of 2
|
||||
if((length % 2) == 0){
|
||||
long sum = 0;
|
||||
//Get the sum of consecutive primes
|
||||
for(int cnt = 0;cnt < length;++cnt){
|
||||
sum += primes.get(cnt);
|
||||
}
|
||||
//If the new sum is prime save it
|
||||
if(primes.contains(sum)){
|
||||
consecutivePrimes = new ArrayList<>();
|
||||
for(int cnt = 0;cnt < length;++cnt){
|
||||
consecutivePrimes.add(primes.get(cnt));
|
||||
}
|
||||
}
|
||||
checkEven(primes, length);
|
||||
}
|
||||
//If the length is odd you need to check every offset until the sum becomes too large
|
||||
else{
|
||||
//Set the offset (always skipping 2 because this is an odd length sum)
|
||||
for(int start = 1;(start + length) < primes.size();++start){
|
||||
long sum = 0;
|
||||
//Get the sum of consecutive primes
|
||||
for(int cnt = 0;cnt < length;++cnt){
|
||||
sum += primes.get(start + cnt);
|
||||
}
|
||||
//If the sum is too large the offset has gotten too high, so break the loop
|
||||
if(sum > MAX){
|
||||
//If the offset is minimum break the length loop because all subsequent sums will be too large
|
||||
if(start == 1){
|
||||
tooLong = true;
|
||||
}
|
||||
break;
|
||||
}
|
||||
//If the new sum is prime save it
|
||||
else if(primes.contains(sum)){
|
||||
consecutivePrimes = new ArrayList<>();
|
||||
for(int cnt = 0;cnt < length;++cnt){
|
||||
consecutivePrimes.add(primes.get(start + cnt));
|
||||
}
|
||||
break;
|
||||
}
|
||||
}
|
||||
tooLong = checkOdd(primes, length);
|
||||
}
|
||||
}
|
||||
|
||||
@@ -111,6 +77,48 @@ public class Problem50 extends Problem{
|
||||
//Set a flag to show the problem is solved
|
||||
solved = true;
|
||||
}
|
||||
public void checkEven(List<Long> primes, long length){
|
||||
long sum = 0;
|
||||
//Get the sum of consecutive primes
|
||||
for(int cnt = 0;cnt < length;++cnt){
|
||||
sum += primes.get(cnt);
|
||||
}
|
||||
//If the new sum is prime save it
|
||||
if(primes.contains(sum)){
|
||||
consecutivePrimes = new ArrayList<>();
|
||||
for(int cnt = 0;cnt < length;++cnt){
|
||||
consecutivePrimes.add(primes.get(cnt));
|
||||
}
|
||||
}
|
||||
}
|
||||
public boolean checkOdd(List<Long> primes, long length){
|
||||
boolean tooLong = false;
|
||||
//Set the offset (always skipping 2 because this is an odd length sum)
|
||||
for(int start = 1;(start + length) < primes.size();++start){
|
||||
long sum = 0;
|
||||
//Get the sum of consecutive primes
|
||||
for(int cnt = 0;cnt < length;++cnt){
|
||||
sum += primes.get(start + cnt);
|
||||
}
|
||||
//If the sum is too large the offset has gotten too high, so break the loop
|
||||
if(sum > MAX){
|
||||
//If the offset is minimum break the length loop because all subsequent sums will be too large
|
||||
if(start == 1){
|
||||
tooLong = true;
|
||||
}
|
||||
break;
|
||||
}
|
||||
//If the new sum is prime save it
|
||||
else if(primes.contains(sum)){
|
||||
consecutivePrimes = new ArrayList<>();
|
||||
for(int cnt = 0;cnt < length;++cnt){
|
||||
consecutivePrimes.add(primes.get(start + cnt));
|
||||
}
|
||||
break;
|
||||
}
|
||||
}
|
||||
return tooLong;
|
||||
}
|
||||
//Reset the problem so it can be run again
|
||||
@Override
|
||||
public void reset(){
|
||||
@@ -125,7 +133,7 @@ public class Problem50 extends Problem{
|
||||
return String.format("The prime below one-million that can be written as the sum of the most consecutive primes is %d", ArrayAlgorithms.getLongSum(consecutivePrimes));
|
||||
}
|
||||
//Returns the list of consecutive primes
|
||||
public ArrayList<Long> getConsecutivePrimes(){
|
||||
public List<Long> getConsecutivePrimes(){
|
||||
solvedCheck("list of consecutive primes");
|
||||
@SuppressWarnings("unchecked")
|
||||
ArrayList<Long> clone = (ArrayList<Long>)consecutivePrimes.clone();
|
||||
|
||||
@@ -104,7 +104,7 @@ public class Problem8 extends Problem{
|
||||
@Override
|
||||
public String getResult(){
|
||||
solvedCheck("result");
|
||||
return String.format("The greatest product is %d\nThe numbers are %s", maxProduct, maxNums);
|
||||
return String.format("The greatest product is %d%nThe numbers are %s", maxProduct, maxNums);
|
||||
}
|
||||
//Returns the string of numbers that produces the largest product
|
||||
public String getLargestNums(){
|
||||
|
||||
@@ -29,7 +29,7 @@ import com.mattrixwv.project_euler.Unsolved;
|
||||
public class Problem9 extends Problem{
|
||||
//Variables
|
||||
//Static variables
|
||||
private static int GOAL_SUM = 1000; //The number that we want the sum of a, b, and c to equal
|
||||
private static final int GOAL_SUM = 1000; //The number that we want the sum of a, b, and c to equal
|
||||
//Instance variables
|
||||
private int a; //The size of the first side
|
||||
private int b; //The size of the second side
|
||||
@@ -61,12 +61,12 @@ public class Problem9 extends Problem{
|
||||
//Loop through all possible a's
|
||||
while((a < GOAL_SUM) && !found){
|
||||
b = a + 1; //b must be larger than a
|
||||
c = Math.sqrt((a * a) + (b * b)); //Compute the hyp
|
||||
c = Math.sqrt((a * a) + (double)(b * b)); //Compute the hyp
|
||||
|
||||
//Loop through all possible b's for this a
|
||||
while((a + b + c) < GOAL_SUM){
|
||||
++b;
|
||||
c = Math.sqrt((a * a) + (b * b));
|
||||
c = Math.sqrt((a * a) + (double)(b * b));
|
||||
}
|
||||
|
||||
//If the sum == 1000 you found the number, otherwise go to the next possible a
|
||||
@@ -104,7 +104,7 @@ public class Problem9 extends Problem{
|
||||
@Override
|
||||
public String getResult(){
|
||||
solvedCheck("result");
|
||||
return String.format("The Pythagorean triplet is %d + %d + %d\nThe numbers' product is %d", a, b, Math.round(c), a * b * Math.round(c));
|
||||
return String.format("The Pythagorean triplet is %d + %d + %d%nThe numbers' product is %d", a, b, Math.round(c), a * b * Math.round(c));
|
||||
}
|
||||
//Returns the length of the first side
|
||||
public int getSideA(){
|
||||
|
||||
Reference in New Issue
Block a user