commit ceaf6f24eb30272877161d7ae6efafc5f5e603bf Author: Andrew Tomaka Date: Thu Apr 5 05:32:56 2012 -0400 Initial commit diff --git a/C/1-a.c b/C/1-a.c new file mode 100755 index 0000000..e966464 --- /dev/null +++ b/C/1-a.c @@ -0,0 +1,17 @@ +#include + +// If we list all the natural numbers below 10 that are multiples of 3 or 5, we get 3, 5, 6 and 9. The sum of these multiples is 23. + +// Find the sum of all the multiples of 3 or 5 below 1000. +void main() { + int sum = 0; + int i = 0; + for(i = 1; i < 1000; i++) { + if(i % 3 == 0 || i % 5 == 0) { + printf("%d, ", i); + sum += i; + } + } + + printf("\n\nSum: %d", sum); +} \ No newline at end of file diff --git a/C/10-a.c b/C/10-a.c new file mode 100755 index 0000000..a984978 --- /dev/null +++ b/C/10-a.c @@ -0,0 +1,41 @@ +#include +#include + +// The sum of the primes below 10 is 2 + 3 + 5 + 7 = 17. + +// Find the sum of all the primes below two million. + +int main() { + long long sum = 0; + int primes = 0; + + int i = 2; + + while(i < 2000000) { + if(isPrime(i) == 1) { + sum += i; + primes++; + } + + if(i == 2) { + i = 3; + } else { + i = i + 2; + } + } + + printf("%d primes sum: '%lld'\n\n", primes, sum); + + return 1; +} + +int isPrime(int number) { + int i; + for(i = 3; i < (int)sqrt(number) + 1; i = i + 2) { + if(number % i == 0 && i != number) { + return 0; + } + } + + return 1; +} \ No newline at end of file diff --git a/C/10-b.c b/C/10-b.c new file mode 100755 index 0000000..701a64b --- /dev/null +++ b/C/10-b.c @@ -0,0 +1,57 @@ +#include +#include + +// The sum of the primes below 10 is 2 + 3 + 5 + 7 = 17. + +// Find the sum of all the primes below two million. + +#define TABLE 100000 + +int isPrime(int, int, int*); + +int main() { + long long sum = 0; + int primesCount = 0, totalPrimes = 0; + int primes[TABLE] = {0}; + + int i = 2; + + while(i < 20000000) { + if(isPrime(i, primesCount, primes) == 1) { + if(primesCount < TABLE) { + primes[primesCount++] = i; + } + sum += i; + totalPrimes++; + } + + if(i == 2) { + i = 3; + } else { + i = i + 2; + } + } + + printf("%d primes sum: '%lld'\n\n", totalPrimes, sum); + + return 1; +} + +int isPrime(int number, int primesCount, int *primes) { + int i; + for(i = 0; i < primesCount && primes[i] * primes[i] <= number; i++) { + if(number % primes[i] == 0 && number != primes[i]) { + return 0; + } + } + + if(i > 0) { + for(i = (primes[i - 1] | 1); i * i <= number; i = i + 2) { + if(number % i == 0 && i != number) { + return 0; + } + } +} + + return 1; +}; \ No newline at end of file diff --git a/C/10-c.c b/C/10-c.c new file mode 100755 index 0000000..1b59f48 --- /dev/null +++ b/C/10-c.c @@ -0,0 +1,29 @@ +#include + +#define LENGTH 1000 + +void main() { + long long sum = 0; + int numbers[LENGTH + 1] = {0}; + int i = 1, j; + + while(i < LENGTH) { + if(numbers[i] == 1) { + continue; + } + + for(j = 1; i * j < LENGTH; j++) { + numbers[i * j] = 0; + } + + i++; + } + + for(i = 1; i < LENGTH; i++) { + if(numbers[i] == 0) { + sum += i; + } + } + + printf("SUM: %lld", sum); +} \ No newline at end of file diff --git a/C/10-chira.c b/C/10-chira.c new file mode 100755 index 0000000..612390c --- /dev/null +++ b/C/10-chira.c @@ -0,0 +1,46 @@ +#include + +// The sum of the primes below 10 is 2 + 3 + 5 + 7 = 17. + +// Find the sum of all the primes below two million. + +#define MAX_PRIMES 100000 + +int isPrime(int, int, int*); + +int main() { + long long sum = 2; + int primesCount = 0, ct = 0; + int primes[MAX_PRIMES]; + + int i = 3; + + while(i < 20000000) { + if(isPrime(i, primesCount, primes) == 1) { + if (primesCount < MAX_PRIMES) + primes[primesCount++] = i; + sum += i; + ct++; + } + + i = i + 2; + } + + printf("%d primes sum: '%lld'\n", ct, sum); + + return 1; +} + +int isPrime(int number, int primesCount, int *primes) { + int i; + for(i = 0; i < primesCount && primes[i]*primes[i] <= number; i++) + if(number % primes[i] == 0) + return 0; + + if (i > 0) + for(i = (primes[i-1]|1); i*i <= number; i = i + 2) + if(number % i == 0) + return 0; + + return 1; +} \ No newline at end of file diff --git a/C/10-lindoc.c b/C/10-lindoc.c new file mode 100755 index 0000000..1866071 --- /dev/null +++ b/C/10-lindoc.c @@ -0,0 +1,31 @@ +#include +#include + +void main (void){ + + long long topValue = 2000000; + int array[topValue+1]; + long long sum = 2; + + // all number are prime + for(long long i=3; i <= topValue;i += 2 ){ + array[i] = 1; + } + + for(long long prime = 3; prime <= topValue;prime += 2){ + if (array[prime]){ + for(long long multiple = prime * prime; multiple <= topValue; multiple += prime){ + if(array[multiple]) + array[multiple] = 0; + } + } + } + + for (long long i = 3; i <= topValue; i += 2){ + if(array[i]){ + sum += i; + + } + } + printf("Sum is %lld\n", sum); +} \ No newline at end of file diff --git a/C/11-MyrddinE.html b/C/11-MyrddinE.html new file mode 100755 index 0000000..74fca44 --- /dev/null +++ b/C/11-MyrddinE.html @@ -0,0 +1,20 @@ + + + + + + + + + + + + + + + + + + + +
08022297381504007504050778521250779108
494999401781185760871740984369480456620
8149317355791429937140675388300349133665
5270952304601142692468560132567137023691
2231167151676389419236542240402866331380
2447326099034502447533537836842035171250
3298812864236710263840675954706618386470
6726206802621220956394396308409166499421
2455580566739926971778789683148834896372
21362309750764420453514061339734313395
7817532822753167159403800462161409535692
163905429635314755588824017542436298557
865604835718907054444374460215851541758
1980816805944769287392138652177704895540
0452088397359916079757321626267933279866
8836688757622072034633674655123263935369
0442167338253911249472180846293240627636
2069364172302388346299698267598574043616
2073352978319001743149714886811623570554
0170547183515469169233486143520189196748
\ No newline at end of file diff --git a/C/11-a.c b/C/11-a.c new file mode 100755 index 0000000..6675d51 --- /dev/null +++ b/C/11-a.c @@ -0,0 +1,241 @@ +#include +#include + +// In the 2020 grid below, four numbers along a diagonal line have been marked in red. + +// 08 02 22 97 38 15 00 40 00 75 04 05 07 78 52 12 50 77 91 08 +// 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 +// 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 +// 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 08 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 09 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 09 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 08 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 08 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 +// The product of these numbers is 26 63 78 14 = 1788696. + +// What is the greatest product of four adjacent numbers in any direction (up, down, left, right, or diagonally) in the 2020 grid? + +int getValue(int); + +int main() { + int i, k; + int greatestProduct = 0; + int greatestValues[4] = {0}; + int greatestStart = 0; + int greatestDirection = 0; + + for(i = 0; i < 400; i++) { + //row and column conversion + int row = (int)(i / 20 + 0.5); + int col = i % 20; + + // check left/right straight line + if(col >= 3 && col <= 16) { + int values[4] = { + getValue(i), + getValue(i - 1), + getValue(i - 2), + getValue(i - 3), + }; + + int currentProduct = 1; + for(k = 0; k < 4; k++) { + currentProduct *= values[k]; + } + + if(currentProduct > greatestProduct) { + greatestProduct = currentProduct; + memcpy(greatestValues, values, 4); + greatestStart = i; + greatestDirection = 1; + } + } + + //check up straight line + if(row >= 3) { + int values[4] = { + getValue(i), + getValue(i - 20 * 1), + getValue(i - 20 * 2), + getValue(i - 20 * 3), + }; + + int currentProduct = 1; + for(k = 0; k < 4; k++) { + currentProduct *= values[k]; + } + + if(currentProduct > greatestProduct) { + greatestProduct = currentProduct; + memcpy(greatestValues, values, 4); + greatestStart = i; + greatestDirection = 2; + } + } + + //check down straight line + if(row <= 16) { + int values[4] = { + getValue(i), + getValue(i + 20 * 1), + getValue(i + 20 * 2), + getValue(i + 20 * 3), + }; + + int currentProduct = 1; + for(k = 0; k < 4; k++) { + currentProduct *= values[k]; + } + + if(currentProduct > greatestProduct) { + greatestProduct = currentProduct; + memcpy(greatestValues, values, 4); + greatestStart = i; + greatestDirection = 3; + } + } + + // then check up/left diagnal + if(row >= 3 && col >= 3) { + int values[4] = { + getValue(i), + getValue(i - 21 * 1), + getValue(i - 21 * 2), + getValue(i - 21 * 3), + }; + + int currentProduct = 1; + for(k = 0; k < 4; k++) { + currentProduct *= values[k]; + } + + if(currentProduct > greatestProduct) { + greatestProduct = currentProduct; + memcpy(greatestValues, values, 4); + greatestStart = i; + greatestDirection = 4; + } + } + + // then check down/right diagnal + if(row <= 16 && col <= 16) { + int values[4] = { + getValue(i), + getValue(i + 21 * 1), + getValue(i + 21 * 2), + getValue(i + 21 * 3), + }; + + int currentProduct = 1; + for(k = 0; k < 4; k++) { + currentProduct *= values[k]; + } + + if(currentProduct > greatestProduct) { + greatestProduct = currentProduct; + memcpy(greatestValues, values, 4); + greatestStart = i; + greatestDirection = 5; + } + } + + // then check up/right diagnal + if(row >= 3 && col <= 16) { + int values[4] = { + getValue(i), + getValue(i - 19 * 1), + getValue(i - 19 * 2), + getValue(i - 19 * 3), + }; + + int currentProduct = 1; + for(k = 0; k < 4; k++) { + currentProduct *= values[k]; + } + + if(currentProduct > greatestProduct) { + greatestProduct = currentProduct; + memcpy(greatestValues, values, 4); + greatestStart = i; + greatestDirection = 6; + } + } + + // then check down/left diagnal + if(row <= 16 && col >= 3) { + int values[4] = { + getValue(i), + getValue(i + 19 * 1), + getValue(i + 19 * 2), + getValue(i + 19 * 3), + }; + + int currentProduct = 1; + for(k = 0; k < 4; k++) { + currentProduct *= values[k]; + } + + if(currentProduct > greatestProduct) { + greatestProduct = currentProduct; + memcpy(greatestValues, values, 4); + greatestStart = i; + greatestDirection = 7; + } + } + } + + printf("%d\n", greatestProduct); + printf("Starting at: %d @ ", greatestStart); + int startRow = (int)(greatestStart / 20 + 0.5); + int startCol = greatestStart % 20; + printf("%d, %d going in direction %d\n", startRow, startCol, greatestDirection); + printf("getValue(%d): %d\n", greatestStart, getValue(greatestStart)); + printf("Values: "); + for(i = 0; i < 4; i++) { + printf("%d, ", greatestValues[i]); + } + + return 0; +} + +int getValue(int number) { + static int numbersTable[20][20] = { + {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, 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, 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}, + }; + + int row = (int)(number / 20 + 0.5); + int col = number % 20; + + return numbersTable[row][col]; +} \ No newline at end of file diff --git a/C/11-b.c b/C/11-b.c new file mode 100755 index 0000000..1668b8d --- /dev/null +++ b/C/11-b.c @@ -0,0 +1,97 @@ +#include + +int getValue(int); + +int main() { + int i, j, current, greatestI, greatestDir; + int greatest = 0; + + for(i = 0; i < 400; i++) { + //check left/right straight line + for(j = i - 3; j <= i; j++) { + if(j < 0) continue; + if(i + 3 >= 400) break; + + current = getValue(i) * getValue(i + 1) * getValue(i + 2) * getValue(i + 3); + + if(current > greatest) { + greatest = current; + greatestI = i; + greatestDir = 1; + } + } + + //check up/down straight line + for(j = i - (20 * 3); j <= i; j += 20) { + if(j < 0) continue; + if(i + 20 * 3 >= 400) break; + + current = getValue(i) * getValue(i + 20 * 1) * getValue(i + 20 * 2) * getValue(i + 20 * 3); + if(current > greatest) { + greatest = current; + greatestI = i; + greatestDir = 2; + } + } + + //check backslash + for(j = i - (21 * 3); j <= i; j += 21) { + if(j < 0) continue; + if(i + 21 * 3 >= 400) break; + + current = getValue(i) * getValue(i + 21 * 1) * getValue(i + 21 * 2) * getValue(i + 21 * 3); + if(current > greatest) { + greatest = current; + greatestI = i; + greatestDir = 3; + } + } + + // check / + for(j = i - (19 * 3); j <= i; j += 19) { + if(j < 0) continue; + if(i + 19 * 3 >= 400) break; + + current = getValue(i) * getValue(i + 19 * 1) * getValue(i + 19 * 2) * getValue(i + 19 * 3); + if(current > greatest) { + greatest = current; + greatestI = i; + greatestDir = 4; + } + } + } + + printf("Greatest Product: %d @ %d going %d", greatest, greatestI, greatestDir); + + return 1; +} + +int getValue(int number) { + static int numbersTable[20][20] = { + {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, 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, 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}, + }; + + int row = (int)(number / 20); + int col = number % 20; + + return numbersTable[row][col]; +} \ No newline at end of file diff --git a/C/12-a.c b/C/12-a.c new file mode 100755 index 0000000..3eab045 --- /dev/null +++ b/C/12-a.c @@ -0,0 +1,65 @@ +#include + +// The sequence of triangle numbers is generated by adding the natural numbers. So the 7th triangle number would be 1 + 2 + 3 + 4 + 5 + 6 + 7 = 28. The first ten terms would be: + +// 1, 3, 6, 10, 15, 21, 28, 36, 45, 55, ... + +// Let us list the factors of the first seven triangle numbers: + +// 1: 1 +// 3: 1,3 +// 6: 1,2,3,6 +// 10: 1,2,5,10 +// 15: 1,3,5,15 +// 21: 1,3,7,21 +// 28: 1,2,4,7,14,28 +// We can see that 28 is the first triangle number to have over five divisors. + +// What is the value of the first triangle number to have over five hundred divisors? +//first attempt 29 minutes, 40 seconds +//second attempt: 13 minutes, 32 seconds + +int countDivisors(long long); + +int main() { + int i = 1; + int j; + long long triNumber; + + while(1) { + if(i % 500 == 0) { + printf("On iteration %d: \n", i); + } + //find the current tri number + triNumber = ((i + 1) * i) / 2; + i++; + if(triNumber % 2 == 1) continue; + + int divisors = countDivisors(triNumber); + if(divisors > 200) { + printf("%lld (%d divisors)\n", triNumber, divisors); + } + + + + if(divisors > 500) break; + if(i < 0) break; + } + + printf("\n%lld", triNumber); + + return 1; +} + +int countDivisors(long long number) { + int i; + int divisors = 0; + + for(i = 1; i * 2 <= number; i++) { + if(number % i == 0) { + divisors++; + } + } + + return divisors + 1; +} \ No newline at end of file diff --git a/C/12-b.c b/C/12-b.c new file mode 100755 index 0000000..df8e1dd --- /dev/null +++ b/C/12-b.c @@ -0,0 +1,89 @@ +#include + +// The sequence of triangle numbers is generated by adding the natural numbers. So the 7th triangle number would be 1 + 2 + 3 + 4 + 5 + 6 + 7 = 28. The first ten terms would be: + +// 1, 3, 6, 10, 15, 21, 28, 36, 45, 55, ... + +// Let us list the factors of the first seven triangle numbers: + +// 1: 1 +// 3: 1,3 +// 6: 1,2,3,6 +// 10: 1,2,5,10 +// 15: 1,3,5,15 +// 21: 1,3,7,21 +// 28: 1,2,4,7,14,28 +// We can see that 28 is the first triangle number to have over five divisors. + +// What is the value of the first triangle number to have over five hundred divisors? +//first attempt 29 minutes, 40 seconds +//second attempt: 13 minutes, 32 seconds +//third attempt: + +#define MAX_SAVED 100000 + +int countDivisors(long long); + +int main() { + int i = 1; + int j; + long long triNumber; + int saved[MAX_SAVED] = {0}; + + while(1) { + if(i % 500 == 0) { + printf("On iteration %d: \n", i); + } + //find the current tri number + triNumber = ((i + 1) * i) / 2; + printf("[[[[[[[[[[[[[[[[[[[[[[ %lld ]]]]]]]]]]]]]]]]]]]\n", triNumber); + if(i == 100) break; + i++; + if(triNumber % 2 == 1) continue; + + int divisors = 0; + int k = 0; + + for(j = 2; j < triNumber && j < MAX_SAVED; j++) { + if(triNumber % j == 0 && saved[j] != 0) { + printf("Using %d with %d divisorsn;\n ", j, saved[j]); + divisors = saved[j]; + k = j; + } + } + + printf("Starting iterations at %d\n", 1 + k); + + if(j > 0) { + for(j = 1 + k; j * 2 <= triNumber; j++) { + if(triNumber % j == 0) { + divisors++; + printf("Adding divisor %d; now at %d divisors\n", j, divisors); + } + } + } + + printf("Divisors Before: %d\n", divisors); + divisors++; + printf("Divisors After: %d\n", divisors); + if(triNumber < MAX_SAVED) { + printf("Saving with %d divisors\n", divisors); + saved[(int)triNumber] = divisors; + } + + + // if(divisors > 200) { + printf("(%d divisors)\n", divisors); + // } + + + + if(divisors > 500) break; + if(i < 0) break; + if(i == 9) break; + } + + printf("\n%lld", triNumber); + + return 1; +} \ No newline at end of file diff --git a/C/12-c.c b/C/12-c.c new file mode 100755 index 0000000..8797f5e --- /dev/null +++ b/C/12-c.c @@ -0,0 +1,69 @@ +#include + +// The sequence of triangle numbers is generated by adding the natural numbers. So the 7th triangle number would be 1 + 2 + 3 + 4 + 5 + 6 + 7 = 28. The first ten terms would be: + +// 1, 3, 6, 10, 15, 21, 28, 36, 45, 55, ... + +// Let us list the factors of the first seven triangle numbers: + +// 1: 1 +// 3: 1,3 +// 6: 1,2,3,6 +// 10: 1,2,5,10 +// 15: 1,3,5,15 +// 21: 1,3,7,21 +// 28: 1,2,4,7,14,28 +// We can see that 28 is the first triangle number to have over five divisors. + +// What is the value of the first triangle number to have over five hundred divisors? +//first attempt 29 minutes, 40 seconds +//second attempt: 13 minutes, 32 seconds + +int countDivisors(long long); + +int main() { + int i = 1; + int j; + long long triNumber; + + while(1) { + if(i % 500 == 0) { + printf("On iteration %d: \n", i); + } + //find the current tri number + triNumber = ((i + 1) * i) / 2; + i++; + if(triNumber % 2 == 1) continue; + + int divisors = countDivisors(triNumber); + if(divisors > 200) { + printf("%lld (%d divisors)\n", triNumber, divisors); + } + + + + if(divisors > 500) break; + if(i < 0) break; + } + + printf("\n%lld", triNumber); + + return 1; +} + +int countDivisors(long long number) { + int i; + int divisors = 0; + + for(i = 1; i * i <= number; i++) { + if(number % i == 0) { + divisors += 2; + } + } + + if(i * i == number) { + divisors--; + } + + return divisors; +} \ No newline at end of file diff --git a/C/13-a.c b/C/13-a.c new file mode 100755 index 0000000..59cea53 --- /dev/null +++ b/C/13-a.c @@ -0,0 +1,134 @@ +#include + +void addBig(int currentPlace, int previousSum, char grid[][50]); + +int main() { + char grid[100][50] = { + {"37107287533902102798797998220837590246510135740250"}, + {"46376937677490009712648124896970078050417018260538"}, + {"74324986199524741059474233309513058123726617309629"}, + {"91942213363574161572522430563301811072406154908250"}, + {"23067588207539346171171980310421047513778063246676"}, + {"89261670696623633820136378418383684178734361726757"}, + {"28112879812849979408065481931592621691275889832738"}, + {"44274228917432520321923589422876796487670272189318"}, + {"47451445736001306439091167216856844588711603153276"}, + {"70386486105843025439939619828917593665686757934951"}, + {"62176457141856560629502157223196586755079324193331"}, + {"64906352462741904929101432445813822663347944758178"}, + {"92575867718337217661963751590579239728245598838407"}, + {"58203565325359399008402633568948830189458628227828"}, + {"80181199384826282014278194139940567587151170094390"}, + {"35398664372827112653829987240784473053190104293586"}, + {"86515506006295864861532075273371959191420517255829"}, + {"71693888707715466499115593487603532921714970056938"}, + {"54370070576826684624621495650076471787294438377604"}, + {"53282654108756828443191190634694037855217779295145"}, + {"36123272525000296071075082563815656710885258350721"}, + {"45876576172410976447339110607218265236877223636045"}, + {"17423706905851860660448207621209813287860733969412"}, + {"81142660418086830619328460811191061556940512689692"}, + {"51934325451728388641918047049293215058642563049483"}, + {"62467221648435076201727918039944693004732956340691"}, + {"15732444386908125794514089057706229429197107928209"}, + {"55037687525678773091862540744969844508330393682126"}, + {"18336384825330154686196124348767681297534375946515"}, + {"80386287592878490201521685554828717201219257766954"}, + {"78182833757993103614740356856449095527097864797581"}, + {"16726320100436897842553539920931837441497806860984"}, + {"48403098129077791799088218795327364475675590848030"}, + {"87086987551392711854517078544161852424320693150332"}, + {"59959406895756536782107074926966537676326235447210"}, + {"69793950679652694742597709739166693763042633987085"}, + {"41052684708299085211399427365734116182760315001271"}, + {"65378607361501080857009149939512557028198746004375"}, + {"35829035317434717326932123578154982629742552737307"}, + {"94953759765105305946966067683156574377167401875275"}, + {"88902802571733229619176668713819931811048770190271"}, + {"25267680276078003013678680992525463401061632866526"}, + {"36270218540497705585629946580636237993140746255962"}, + {"24074486908231174977792365466257246923322810917141"}, + {"91430288197103288597806669760892938638285025333403"}, + {"34413065578016127815921815005561868836468420090470"}, + {"23053081172816430487623791969842487255036638784583"}, + {"11487696932154902810424020138335124462181441773470"}, + {"63783299490636259666498587618221225225512486764533"}, + {"67720186971698544312419572409913959008952310058822"}, + {"95548255300263520781532296796249481641953868218774"}, + {"76085327132285723110424803456124867697064507995236"}, + {"37774242535411291684276865538926205024910326572967"}, + {"23701913275725675285653248258265463092207058596522"}, + {"29798860272258331913126375147341994889534765745501"}, + {"18495701454879288984856827726077713721403798879715"}, + {"38298203783031473527721580348144513491373226651381"}, + {"34829543829199918180278916522431027392251122869539"}, + {"40957953066405232632538044100059654939159879593635"}, + {"29746152185502371307642255121183693803580388584903"}, + {"41698116222072977186158236678424689157993532961922"}, + {"62467957194401269043877107275048102390895523597457"}, + {"23189706772547915061505504953922979530901129967519"}, + {"86188088225875314529584099251203829009407770775672"}, + {"11306739708304724483816533873502340845647058077308"}, + {"82959174767140363198008187129011875491310547126581"}, + {"97623331044818386269515456334926366572897563400500"}, + {"42846280183517070527831839425882145521227251250327"}, + {"55121603546981200581762165212827652751691296897789"}, + {"32238195734329339946437501907836945765883352399886"}, + {"75506164965184775180738168837861091527357929701337"}, + {"62177842752192623401942399639168044983993173312731"}, + {"32924185707147349566916674687634660915035914677504"}, + {"99518671430235219628894890102423325116913619626622"}, + {"73267460800591547471830798392868535206946944540724"}, + {"76841822524674417161514036427982273348055556214818"}, + {"97142617910342598647204516893989422179826088076852"}, + {"87783646182799346313767754307809363333018982642090"}, + {"10848802521674670883215120185883543223812876952786"}, + {"71329612474782464538636993009049310363619763878039"}, + {"62184073572399794223406235393808339651327408011116"}, + {"66627891981488087797941876876144230030984490851411"}, + {"60661826293682836764744779239180335110989069790714"}, + {"85786944089552990653640447425576083659976645795096"}, + {"66024396409905389607120198219976047599490197230297"}, + {"64913982680032973156037120041377903785566085089252"}, + {"16730939319872750275468906903707539413042652315011"}, + {"94809377245048795150954100921645863754710598436791"}, + {"78639167021187492431995700641917969777599028300699"}, + {"15368713711936614952811305876380278410754449733078"}, + {"40789923115535562561142322423255033685442488917353"}, + {"44889911501440648020369068063960672322193204149535"}, + {"41503128880339536053299340368006977710650566631954"}, + {"81234880673210146739058568557934581403627822703280"}, + {"82616570773948327592232845941706525094512325230608"}, + {"22918802058777319719839450180888072429661980811197"}, + {"77158542502016545090413245809786882778948721859617"}, + {"72107838435069186155435662884062257473692284509516"}, + {"20849603980134001723930671666823555245252804609722"}, + {"53503534226472524250874054075591789781264330331690"}, + }; + + addBig(49, 0, grid); + + return 1; +} +void addBig(int currentPlace, int previousSum, char grid[][50]) { + int i, currentSum = 0; + + for(i = 0; i < 100; i++) { + currentSum += (int)(grid[i][currentPlace] - 48); + } + + currentSum += previousSum; + + char charCurrentSum[3]; + sprintf(charCurrentSum, "%03d", currentSum); + + int nextSum = (int)(charCurrentSum[0] - 48) * 10 + (int)(charCurrentSum[1] - 48); + + if(currentPlace-- == 0) { + printf("%d", currentSum); + return; + } + addBig(currentPlace, nextSum, grid); + + printf("%c", charCurrentSum[2]); +} \ No newline at end of file diff --git a/C/14-a.c b/C/14-a.c new file mode 100755 index 0000000..036bc36 --- /dev/null +++ b/C/14-a.c @@ -0,0 +1,31 @@ +#include + +int main() { + int i, scorer = 0; + int longestScore = 0; + + for(i = 1; i < 1000000; i++) { + if(i % 50000 == 0) printf("ON THE %d ITERATION\n", i); + long long number = i; + int score = 1; + while(number != 1) { + if(number % 2 == 0) { + number = number / 2; + } else { + number = 3 * number + 1; + } + + score++; + } + + if(score > longestScore) { + if(score > 350) printf("%d set a new high score of %d\n", i, score); + longestScore = score; + scorer = i; + } + } + + printf("\n\n%d scored %d", scorer, longestScore); + + return 1; +} \ No newline at end of file diff --git a/C/15-a.c b/C/15-a.c new file mode 100755 index 0000000..8c2b812 --- /dev/null +++ b/C/15-a.c @@ -0,0 +1,33 @@ +#include + +// Starting in the top left corner of a 22 grid, there are 6 routes (without backtracking) to the bottom right corner. + + +// How many routes are there through a 2020 grid? +#define GRID_SIZE 2 + +long long traverse(int x, int y); + +int main() { + printf("%lld", traverse(0, 0)); + + return 1; +} + +long long traverse(int x, int y) { + long long i = 0; + printf("(%d, %d)\n", x, y); + + if(x < GRID_SIZE) { + i += traverse(x + 1, y); + } + if(y < GRID_SIZE) { + i += traverse(x, y + 1); + } + + if(x == GRID_SIZE && y == GRID_SIZE) { + return 1; + } + + return i; +} \ No newline at end of file diff --git a/C/15-b.c b/C/15-b.c new file mode 100755 index 0000000..79afee9 --- /dev/null +++ b/C/15-b.c @@ -0,0 +1,43 @@ +#include + +// Starting in the top left corner of a 22 grid, there are 6 routes (without backtracking) to the bottom right corner. + + +// How many routes are there through a 2020 grid? +#define GRID_SIZE 20 + +long long traverse(int x, int y); +int isCorner(int x, int y); + +int main() { + long long paths = 0; + paths = traverse(0, 0); + + printf("%lld", paths); + + return 1; +} + +long long traverse(int x, int y) { + static long long grid[GRID_SIZE][GRID_SIZE] = {{0}}; + long long paths = 0; + + if(GRID_SIZE - x == 0 || GRID_SIZE - y == 0) { + grid[x][y] = 1; + return 1; + } + + if(grid[x][y] == 0) { + if(x < GRID_SIZE) { + paths += traverse(x + 1, y); + } + if(y < GRID_SIZE) { + paths += traverse(x, y + 1); + } + + grid[x][y] = paths; + grid[y][x] = paths; + } + + return grid[x][y]; +} \ No newline at end of file diff --git a/C/15-giudoku.c b/C/15-giudoku.c new file mode 100755 index 0000000..522a4b6 --- /dev/null +++ b/C/15-giudoku.c @@ -0,0 +1,40 @@ +#include + +#define LEN 21 + +void printMatrice(unsigned long long m[][LEN]) +{ + int i,j; + + for (i = 0; i < LEN; ++i) + { + for (j = 0; j < LEN; ++j) + { + printf ("%11llu ", m[i][j]); + } + printf("\n"); + } +} + +int main(int argc, char **argv) +{ + unsigned long long matrice[LEN][LEN] = {0}; + int i, j; + + for (i = 0; i < LEN; ++i) + { + matrice[i][0] = matrice[0][i] = 1; + } + matrice[0][0] = 0; + + for (i = 1; i < LEN; ++i) + { + for (j = 1; j < LEN; ++j) + { + matrice[i][j] = matrice[i-1][j] + matrice[i][j-1]; + } + } + + printMatrice(matrice); + return 0; +} \ No newline at end of file diff --git a/C/16-a.c b/C/16-a.c new file mode 100755 index 0000000..ed28373 --- /dev/null +++ b/C/16-a.c @@ -0,0 +1,41 @@ +#include + +// 215 = 32768 and the sum of its digits is 3 + 2 + 7 + 6 + 8 = 26. + +// What is the sum of the digits of the number 2^1000? + +#define POWER 1000 +#define MAXSIZE 400 + +void power(int base, int power, int* digits); + +int main() { + int digits[MAXSIZE] = {0}; + int i, sum = 0; + + digits[0] = 1; + + power(2, POWER, digits); + + for(i = 0; i < MAXSIZE; i++) { + sum += digits[i]; + } + + printf("%d\n", sum); + + return 1; +} + +void power(int base, int power, int* digits) { + int i, j; + + for(i = 1; i <= power; i++) { + int current = 1, carry = 0; + + for(j = 0; j < MAXSIZE; j++) { + current = (digits[j] << 1) + carry; + digits[j] = current % 10; + carry = current / 10; + } + } +} \ No newline at end of file diff --git a/C/17-a.c b/C/17-a.c new file mode 100755 index 0000000..76256da --- /dev/null +++ b/C/17-a.c @@ -0,0 +1,31 @@ +#include + +// If the numbers 1 to 5 are written out in words: one, two, three, four, five, then there are 3 + 3 + 5 + 4 + 4 = 19 letters used in total. + +// If all the numbers from 1 to 1000 (one thousand) inclusive were written out in words, how many letters would be used? + + +// NOTE: Do not count spaces or hyphens. For example, 342 (three hundred and forty-two) contains 23 letters and 115 (one hundred and fifteen) contains 20 letters. The use of "and" when writing out numbers is in compliance with British usage. + +int main(void) { + int ones[] = {0, 3, 3, 5, 4, 4, 3, 5, 5, 4}; + int teens[] = {3, 6, 6, 8, 8, 7, 7, 9, 8, 8}; + int tens[] = {0, 0, 6, 6, 5, 5, 5, 7, 6, 6}; + + int i, onesSum = 0, teensSum= 0, tensSum= 0, hundredsSum = 0; + + for(i = 0; i < 10; i++) + onesSum += ones[i]; + for(i = 0; i < 10; i++) + teensSum += teens[i]; + for(i = 0; i < 10; i++) + tensSum += tens[i]; + + int length = 0; + // ( ones teens tens ) ten times (XX hundred) ("hundred") ("and") ("thousand") + length = ((onesSum * 9 + teensSum + tensSum * 10) * 10) + (onesSum * 100) + (7*100*9) + (3*99*9) + 11; + + printf("%d\n", length); + + return 1; +} \ No newline at end of file diff --git a/C/18-a.c b/C/18-a.c new file mode 100755 index 0000000..8b8b943 --- /dev/null +++ b/C/18-a.c @@ -0,0 +1,77 @@ +#include + +// By starting at the top of the triangle below and moving to adjacent numbers on the row below, the maximum total from top to bottom is 23. + +// 3 +// 7 4 +// 2 4 6 +// 8 5 9 3 + +// That is, 3 + 7 + 4 + 9 = 23. + +// Find the maximum total from top to bottom of the triangle below: + +// 75 0 0 +// 95 64 2 2 +// 17 47 82 5 3 +// 18 35 87 10 9 4 +// 20 04 82 47 65 14 5 +// 19 01 23 75 03 34 20 6 +// 88 02 77 73 07 63 67 27 7 +// 99 65 04 28 06 16 70 92 +// 41 41 26 56 83 40 80 70 33 +// 41 48 72 33 47 32 37 16 94 29 +// 53 71 44 65 25 43 91 52 97 51 14 +// 70 11 33 28 77 73 17 78 39 68 17 57 +// 91 71 52 38 17 14 91 43 58 50 27 29 48 +// 63 66 04 68 89 53 67 30 73 16 69 87 40 31 +// 04 62 98 27 23 09 70 98 73 93 38 53 60 04 23 + +// NOTE: As there are only 16384 routes, it is possible to solve this problem by trying every route. However, Problem 67, is the same challenge with a triangle containing one-hundred rows; it cannot be solved by brute force, and requires a clever method! ;o) + +#define SIZE 15 + +int traverseTriangle(int x, int y, int size); +int triangleSize(int triangle[]); + +int main(void) { + // int triangle[4][4] = { + // {3, 0, 0, 0}, + // {7, 4, 0, 0}, + // {2, 4, 7, 0}, + // {8, 5, 9, 3} + // }; + int triangle[15][15] = { + {75, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, }, + {95, 64, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, }, + {17, 47, 82, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, }, + {18, 35, 87, 10, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, }, + {20, 4, 82, 47, 65, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, }, + {19, 1, 23, 75, 3, 34, 0, 0, 0, 0, 0, 0, 0, 0, 0, }, + {88, 2, 77, 73, 7, 63, 67, 0, 0, 0, 0, 0, 0, 0, 0, }, + {99, 65, 4, 28, 6, 16, 70, 92, 0, 0, 0, 0, 0, 0, 0, }, + {41, 41, 26, 56, 83, 40, 80, 70, 33, 0, 0, 0, 0, 0, 0, }, + {41, 48, 72, 33, 47, 32, 37, 17, 94, 29, 0, 0, 0, 0, 0, }, + {53, 71, 44, 65, 25, 43, 91, 52, 97, 51, 14, 0, 0, 0, 0, }, + {70, 11, 33, 28, 77, 73, 17, 78, 39, 68, 17, 57, 0, 0, 0, }, + {91, 71, 52, 38, 17, 14, 91, 43, 58, 50, 27, 29, 48, 0, 0, }, + {63, 66, 4, 68, 89, 53, 67, 30, 73, 16, 69, 87, 40, 31, 0, }, + { 4, 62, 98, 27, 23, 9, 70, 98, 73, 93, 38, 53, 60, 4, 23, }, + }; + int i, j; + + // size = 10; how to find last row + for(i = SIZE - 1; i >= 0; i--) { + for(j = 0; j <= SIZE - 1; j++) { + if(triangle[i][j] + triangle[i - 1][j] > triangle[i][j + 1] + triangle [i - 1][j]) { + triangle[i - 1][j] = triangle[i - 1][j] + triangle[i][j]; + } else { + triangle[i - 1][j] = triangle[i - 1][j] + triangle[i][j + 1]; + } + } + } + + printf("%d", triangle[0][0]); + + return 1; +} \ No newline at end of file diff --git a/C/19-a.c b/C/19-a.c new file mode 100755 index 0000000..a978a7d --- /dev/null +++ b/C/19-a.c @@ -0,0 +1,54 @@ +#include + +// You are given the following information, but you may prefer to do some research for yourself. + +// 1 Jan 1900 was a Monday. +// Thirty days has September, +// April, June and November. +// All the rest have thirty-one, +// Saving February alone, +// Which has twenty-eight, rain or shine. +// And on leap years, twenty-nine. +// A leap year occurs on any year evenly divisible by 4, but not on a century unless it is divisible by 400. +// How many Sundays fell on the first of the month during the twentieth century (1 Jan 1901 to 31 Dec 2000)? + +int main(void) { + int year = 1900, month = 1, day = 1, firstSunday = 0; + + for(; year <= 2000; year++) { + printf("%d: ", year); + for(month = 1; month <= 12; month++) { + int daysInMonth; + if(month == 4 || month == 6 || month == 9 || month == 11) { + daysInMonth = 30; + } else if(month == 1 || month == 3 || month == 5 || month == 7 || month == 8 || month == 10 || month == 12) { + daysInMonth = 31; + } else if(year % 100 == 0) { + if(year % 400 == 0) { + daysInMonth = 29; + } else { + daysInMonth = 28; + } + } else if(year % 4 == 0) { + daysInMonth = 29; + } else { + daysInMonth = 28; + } + + if(day % 7 == 0) { + printf("X"); + if(year != 1900) + firstSunday++; + } else { + printf("O"); + } + + day += daysInMonth; + } + printf("\t%d\n", firstSunday); + } + + printf("%d\n", firstSunday); + + return 1; +} \ No newline at end of file diff --git a/C/19-b.c b/C/19-b.c new file mode 100755 index 0000000..24de7a1 --- /dev/null +++ b/C/19-b.c @@ -0,0 +1,25 @@ +#include + +int main(void) { + int months[12] = {31, 28, 31, 30, 31, 30, 31, 31, 30, 31, 30, 31 }; + int year, month, day = 1, firstSunday = 0; + + for(year = 1900; year <= 2000; year++) { + for(month = 0; month < 12; month++) { + int daysInMonth = months[month]; + + if(month == 1 && year % 100 == 0) { + if(year % 400 == 0) + daysInMonth++; + } else if(month == 1 && year % 4 == 0) + daysInMonth++; + + if(day % 7 == 0 && year != 1900) + firstSunday++; + + day += daysInMonth; + } + } + + printf("%d", firstSunday); +} \ No newline at end of file diff --git a/C/2-a.c b/C/2-a.c new file mode 100755 index 0000000..ef24532 --- /dev/null +++ b/C/2-a.c @@ -0,0 +1,25 @@ +#include + +// Each new term in the Fibonacci sequence is generated by adding the previous two terms. By starting with 1 and 2, the first 10 terms will be: + +// 1, 2, 3, 5, 8, 13, 21, 34, 55, 89, ... + +// By considering the terms in the Fibonacci sequence whose values do not exceed four million, find the sum of the even-valued terms. + +void main() { + int i = 1; + int j,sum = 0; + + while(i < 4000000) { + printf("%d, ", i); + if(i % 2 == 0) { + sum += i; + } + + int temp = i; + i = i + j; + j = temp; + } + + printf("\n\nSum: %d", sum); +} \ No newline at end of file diff --git a/C/20-a.c b/C/20-a.c new file mode 100755 index 0000000..b323bb0 --- /dev/null +++ b/C/20-a.c @@ -0,0 +1,34 @@ +#include + +// n! means n (n 1) ... 3 2 1 + +// For example, 10! = 10 9 ... 3 2 1 = 3628800, +// and the sum of the digits in the number 10! is 3 + 6 + 2 + 8 + 8 + 0 + 0 = 27. + +// Find the sum of the digits in the number 100! + +#define NUMBER 100 +#define MAXSIZE 500 + +int main(void) { + int factorial [MAXSIZE] = {0}; + int i, j, sum = 0; + + factorial[0] = 1; + for(i = NUMBER; i > 0; i--) { + int current = 1, carry = 0; + + for(j = 0; j < MAXSIZE; j++) { + current = factorial[j] * i + carry; + factorial[j] = current % 10; + carry = current / 10; + } + } + + for(i = 0; i < MAXSIZE; i++) + sum += factorial[i]; + + printf("%d", sum); + + return 1; +} \ No newline at end of file diff --git a/C/21-a.c b/C/21-a.c new file mode 100755 index 0000000..e98fcdd --- /dev/null +++ b/C/21-a.c @@ -0,0 +1,43 @@ +#include + +// Let d(n) be defined as the sum of proper divisors of n (numbers less than n which divide evenly into n). +// If d(a) = b and d(b) = a, where a != b, then a and b are an amicable pair and each of a and b are called amicable numbers. + +// For example, the proper divisors of 220 are 1, 2, 4, 5, 10, 11, 20, 22, 44, 55 and 110; therefore d(220) = 284. The proper divisors of 284 are 1, 2, 4, 71 and 142; so d(284) = 220. + +// Evaluate the sum of all the amicable numbers under 10000. + +#define UPPER 10000 + +int sumDivisors(int number); + +int main(void) { + int divisors[UPPER] = {0}; + int i, amicableSum = 0; + + for(i = 0; i < UPPER; i++) + divisors[i] = sumDivisors(i); + + for(i = 0; i < UPPER; i++) { + if(divisors[i] < UPPER) { + if(divisors[divisors[i]] == i && divisors[i] != i) { + printf("%d and %d are amicable\n", i, divisors[i]); + amicableSum += i; + } + } + } + + printf("%d", amicableSum); + + return 1; +} + +int sumDivisors(int number) { + int i, sum = 0; + + for(i = 1; i * 2 <= number; i++) + if(number % i == 0) + sum += i; + + return sum; +} \ No newline at end of file diff --git a/C/22-a.c b/C/22-a.c new file mode 100755 index 0000000..a6e8b51 --- /dev/null +++ b/C/22-a.c @@ -0,0 +1,62 @@ +#include +#include +#include + +// Using names.txt (right click and 'Save Link/Target As...'), a 46K text file containing over five-thousand first names, begin by sorting it into alphabetical order. Then working out the alphabetical value for each name, multiply this value by its alphabetical position in the list to obtain a name score. + +// For example, when the list is sorted into alphabetical order, COLIN, which is worth 3 + 15 + 12 + 9 + 14 = 53, is the 938th name in the list. So, COLIN would obtain a score of 938 * 53 = 49714. + +// What is the total of all the name scores in the file? + +int nameScore(char name[50]); + +int main(void) { + char c; + char names[5163][50]; + int i, name = 0, character = 0, inQuotes = 0; + long long totalScore = 0; + + while((c = getchar()) != EOF) { + if(c == '"') { + if(inQuotes == 0) { + inQuotes = 1; + } else { + inQuotes = 0; + names[name][character] = '\0'; + name++; + character = 0; + } + } else if(c != ',') { + names[name][character] = c; + character++; + } + } + + qsort(names, 5163, 50, (int(*)(const void*, const void*))strcmp); + + for(i = 0; i < name; i++) { + int scoredName = nameScore(names[i]); + int currentScore = (i + 1) * scoredName; + totalScore += currentScore; + } + + printf("%lld", totalScore); + + return 1; +} + +int nameScore(char name[50]) { + char alphabet[27] = "_ABCDEFGHIJKLMNOPQRSTUVWXYZ"; + int i, j, nameScore = 0; + + for(i = 0; name[i] != '\0'; i++) { + for(j = 1; j < 27; j++) { + if(name[i] == alphabet[j]) { + nameScore += j; + break; + } + } + } + + return nameScore; +} \ No newline at end of file diff --git a/C/22-b.c b/C/22-b.c new file mode 100755 index 0000000..a10e074 --- /dev/null +++ b/C/22-b.c @@ -0,0 +1,66 @@ +#include +#include +#include + +// Using names.txt (right click and 'Save Link/Target As...'), a 46K text file containing over five-thousand first names, begin by sorting it into alphabetical order. Then working out the alphabetical value for each name, multiply this value by its alphabetical position in the list to obtain a name score. + +// For example, when the list is sorted into alphabetical order, COLIN, which is worth 3 + 15 + 12 + 9 + 14 = 53, is the 938th name in the list. So, COLIN would obtain a score of 938 * 53 = 49714. + +// What is the total of all the name scores in the file? + +int nameScore(char name[50]); + +int main(void) { + char c; + char (*names)[50] = malloc(10 * sizeof(char[50])); + int i, name = 0, character = 0, inQuotes = 0, capacity = 10; + long long totalScore = 0; + + while((c = getchar()) != EOF) { + if(name == capacity) { + capacity *= 2; + names = realloc(names, capacity * sizeof(char[50])); + } + if(c == '"') { + if(inQuotes == 0) { + inQuotes = 1; + } else { + inQuotes = 0; + names[name][character] = '\0'; + name++; + character = 0; + } + } else if(c != ',') { + names[name][character] = c; + character++; + } + } + + qsort(names, name, sizeof(char[50]), (int(*)(const void*, const void*))strcmp); + + for(i = 0; i < name; i++) { + int scoredName = nameScore(names[i]); + int currentScore = (i + 1) * scoredName; + totalScore += currentScore; + } + + printf("%lld", totalScore); + + return 1; +} + +int nameScore(char name[50]) { + char alphabet[] = "_ABCDEFGHIJKLMNOPQRSTUVWXYZ"; + int i, j, nameScore = 0; + + for(i = 0; name[i] != '\0'; i++) { + for(j = 1; alphabet[j] != '\0'; j++) { + if(name[i] == alphabet[j]) { + nameScore += j; + break; + } + } + } + + return nameScore; +} \ No newline at end of file diff --git a/C/22-small.txt b/C/22-small.txt new file mode 100755 index 0000000..253e55a --- /dev/null +++ b/C/22-small.txt @@ -0,0 +1 @@ +"MARY","PATRICIA" \ No newline at end of file diff --git a/C/22.txt b/C/22.txt new file mode 100755 index 0000000..7b8986b --- /dev/null +++ b/C/22.txt @@ -0,0 +1 @@ +"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" \ No newline at end of file diff --git a/C/23-a.c b/C/23-a.c new file mode 100755 index 0000000..5668e79 --- /dev/null +++ b/C/23-a.c @@ -0,0 +1,57 @@ +#include + +// A perfect number is a number for which the sum of its proper divisors is exactly equal to the number. For example, the sum of the proper divisors of 28 would be 1 + 2 + 4 + 7 + 14 = 28, which means that 28 is a perfect number. + +// A number n is called deficient if the sum of its proper divisors is less than n and it is called abundant if this sum exceeds n. + +// As 12 is the smallest abundant number, 1 + 2 + 3 + 4 + 6 = 16, the smallest number that can be written as the sum of two abundant numbers is 24. By mathematical analysis, it can be shown that all integers greater than 28123 can be written as the sum of two abundant numbers. However, this upper limit cannot be reduced any further by analysis even though it is known that the greatest number that cannot be expressed as the sum of two abundant numbers is less than this limit. + +// Find the sum of all the positive integers which cannot be written as the sum of two abundant numbers. + +#define DEFICITMAX 28123 +int divisorSum(int number); + +int main(void) { + int abundantSums[DEFICITMAX] = {1}; + int abundantAdds[DEFICITMAX] = {0}; + int i, j, abundantAddSum = 0; + + for(i = 1; i <= DEFICITMAX; i++) { + abundantSums[i] = divisorSum(i); + + if(abundantSums[i] <= i) + abundantSums[i] = 0; + } + + for(i = 1; i <= DEFICITMAX; i++) { + if(abundantSums[i] > 0) { + for(j = 1; i + j <= DEFICITMAX; j++) { + if(abundantSums[j] > 0 && abundantAdds[i + j] != 1) { + abundantAdds[i + j] = 1; + } + } + } + } + + for(i = 1; i <= DEFICITMAX; i++) { + if(abundantAdds[i] == 0) { + abundantAddSum += i; + } + } + + printf("\n\n = %d", abundantAddSum); + + return 1; +} + +int divisorSum(int number) { + int i, sum = 0; + + for(i = 1; i <= number / 2; i++) + if(number % i == 0) { + sum += i; + } + + + return sum; +} \ No newline at end of file diff --git a/C/23-b.c b/C/23-b.c new file mode 100755 index 0000000..1d98b08 --- /dev/null +++ b/C/23-b.c @@ -0,0 +1,48 @@ +#include + +#define DEFICITMAX 28123 + +int divisorSum(int number); + +int main(void) { + int abundantNumbers[DEFICITMAX] = {0}; + int sumOfAbundantNumbers[DEFICITMAX] = {0}; + int i, j, sum = 0; + + // generate list of abundant numbers 1-DEFICITMAX + for(i = 1; i <= DEFICITMAX; i++) + if(isAbundant(i) == 1) + abundantNumbers[i] = 1; + + // generate list of all numbers that are the sum of abundant numbers + for(i = 1; i <= DEFICITMAX; i++) { + if(abundantNumbers[i] > 0) { + for(j = 1; i + j <= DEFICITMAX; j++) { + if(abundantNumbers[j] > 0 && sumOfAbundantNumbers[i + j] != 1) { + sumOfAbundantNumbers[i + j] = 1; + } + } + } + } + + // sum up all positive integers that cannot be written as the sum + for(i = 1; i <= DEFICITMAX; i++) { + if(sumOfAbundantNumbers[i] == 0) { + sum += i; + } + } + + printf("\n\n%d", sum); + + return 1; +} + +int isAbundant(int number) { + int i, sum = 0; + + for(i = 1; i <= number / 2; i++) + if(number % i == 0) + sum += i; + + return (sum > number) ? 1 : 0; +} \ No newline at end of file diff --git a/C/24-a.c b/C/24-a.c new file mode 100755 index 0000000..45dc46f --- /dev/null +++ b/C/24-a.c @@ -0,0 +1,59 @@ +#include + +// A permutation is an ordered arrangement of objects. For example, 3124 is one possible permutation of the digits 1, 2, 3 and 4. If all of the permutations are listed numerically or alphabetically, we call it lexicographic order. The lexicographic permutations of 0, 1 and 2 are: + +// 012 021 102 120 201 210 + +// What is the millionth lexicographic permutation of the digits 0, 1, 2, 3, 4, 5, 6, 7, 8 and 9? + +#define MAXPERM 3 + +void swap(int i, int j, int numbers[]); +void permutate(int numbers[]); + +int main(void) { + // int numbers[] = {0, 1, 2, 3, 4, 5, 6, 7, 8, 9}; + int numbers[] = { 0, 1, 2 }; + int i, permutations = 0; + + i = sizeof(numbers) - 1; + while(permutations < MAXPERM) { + while(numbers[i - 1] >= numbers[i]) { + i--; + } + + int j = sizeof(numbers); + + while(numbers[j - 1] <= numbers[i - 1]) { + j = j - 1; + } + + swap(i - 1, j - 1, numbers); + + i++; + j = sizeof(numbers); + + while(i < j) { + swap(i - 1, j - 1, numbers); + i++; + j--; + } + + permutations++; + } + + for(i = 0; i < MAXPERM; i++) + printf("%d, ", numbers[i]); + + return 1; +} + +void permutate(int numbers[]) { + +} + +void swap(int i, int j, int numbers[]) { + int temp = numbers[i]; + numbers[i] = numbers[j]; + numbers[j] = temp; +} \ No newline at end of file diff --git a/C/24-b.c b/C/24-b.c new file mode 100755 index 0000000..aec6fe2 --- /dev/null +++ b/C/24-b.c @@ -0,0 +1,57 @@ +#include + +#define GETPERM 1000000 + +void permutate(int set[], int setSize); +void swap(int a, int b, int numbers[]); +void printSet(int set[], int setSize); + +int main(void) { + int numbers[] = {0, 1, 2, 3, 4, 5, 6, 7, 8, 9}; + int setSize = sizeof(numbers) / sizeof(numbers[0]); + + permutate(numbers, setSize); + + printf("\nPermutation %d: ", GETPERM); + printSet(numbers, setSize); + + return 1; +} + +void permutate(int a[], int setSize) { + int permutations = 0; + int k, l; + + while(permutations < GETPERM - 1) { + // Find the largest index k such that a[k] < a[k + 1]. If no such index exists, the permutation is the last permutation + for(k = setSize - 2; a[k] >= a[k + 1]; k--) + ; + + + // Find the largest index l such that a[k] < a[l]. Since k + 1 is such an index, l is well defined and satisfies k < l. + for(l = setSize - 1; a[k] >= a[l]; l--) + ; + + // Swap a[k] with a[l]. + swap(k, l, a); + + // Reverse the sequence from a[k + 1] up to and including the final element a[n]. + for(k++, l = setSize - 1; k < l; k++, l--) + swap(k, l, a); + + permutations++; + } +} + +void swap(int a, int b, int set[]) { + int temp = set[b]; + set[b] = set[a]; + set[a] = temp; +} + +void printSet(int set[], int setSize) { + int i; + + for(i = 0; i < setSize; i++) + printf("%d, ", set[i]); +} \ No newline at end of file diff --git a/C/24-mathblog.c b/C/24-mathblog.c new file mode 100755 index 0000000..0b7f662 --- /dev/null +++ b/C/24-mathblog.c @@ -0,0 +1,45 @@ +#include + +int main() { + int[] perm = { 0, 1, 2 }; + + int count = 1; + int numPerm = 3a; + + while (count < numPerm) { + int N = perm.Length; + int i = N-1; + while (perm[i - 1] >= perm[i]) { + i = i - 1; + } + + int j = N; + while (perm[j - 1] <= perm[i - 1]) { + j = j - 1; + } + + // swap values at position i-1 and j-1 + swap(i - 1, j - 1); + + i++; + j = N; + while (i < j) { + swap(i - 1, j - 1); + i++; + j--; + } + count++; + } + + string permNum = ""; + for (int k = 0; k < perm.Length; k++) { + permNum = permNum + perm[k]; + } +} + + +private void swap(int i, int j) { + int k = perm[i]; + perm[i] = perm[j]; + perm[j] = k; +} \ No newline at end of file diff --git a/C/25-a.c b/C/25-a.c new file mode 100755 index 0000000..8d0700d --- /dev/null +++ b/C/25-a.c @@ -0,0 +1,36 @@ +#include +#include + +// The Fibonacci sequence is defined by the recurrence relation: + +// F(n) = F(n-1) + F(n-2), where F(1) = 1 and F(2) = 1. +// Hence the first 12 terms will be: + +// F(1) = 1 +// F(2) = 1 +// F(3) = 2 +// F(4) = 3 +// F(5) = 5 +// F(6) = 8 +// F(7) = 13 +// F(8) = 21 +// F(9) = 34 +// F(10) = 55 +// F(11) = 89 +// F(12) = 144 +// The 12th term, F(12), is the first term to contain three digits. + +// What is the first term in the Fibonacci sequence to contain 1000 digits? + +#define DIGITS 1000 + +int main(void) { + long double goldenRatio = (1 + sqrt(5)) / 2; + + // int number = (int)ceil((DIGITS - 1 * log10(5)) / log10(goldenRatio)); + int number = (int)ceil((DIGITS - 1 + log10(5) / 2) / log10(goldenRatio)); + + printf("%d", number); + + return 1; +} \ No newline at end of file diff --git a/C/25-test.c b/C/25-test.c new file mode 100755 index 0000000..0fe10e4 --- /dev/null +++ b/C/25-test.c @@ -0,0 +1,15 @@ +#include +#include + +#define DIGITS 100000 + +int main(void) { + long double goldenRatio = (1 + sqrt(5)) / 2; + + int number1 = (int)ceil((DIGITS - 1 * log10(5)) / log10(goldenRatio)); + int number2 = (int)ceil((DIGITS - 1 + log10(5) / 2) / log10(goldenRatio)); + + printf("%d = %d\n", number1, number2); + + return 1; +} \ No newline at end of file diff --git a/C/26-a.c b/C/26-a.c new file mode 100755 index 0000000..a331c9b --- /dev/null +++ b/C/26-a.c @@ -0,0 +1,50 @@ +#include + +// A unit fraction contains 1 in the numerator. The decimal representation of the unit fractions with denominators 2 to 10 are given: + +// 1/2 = 0.5 +// 1/3 = 0.(3) +// 1/4 = 0.25 +// 1/5 = 0.2 +// 1/6 = 0.1(6) +// 1/7 = 0.(142857) +// 1/8 = 0.125 +// 1/9 = 0.(1) +// 1/10 = 0.1 +// Where 0.1(6) means 0.166666..., and has a 1-digit recurring cycle. It can be seen that 1/7 has a 6-digit recurring cycle. + +// Find the value of d 1000 for which 1/d contains the longest recurring cycle in its decimal fraction part. + +#define UPPER 1000 + +char* convertToDigits(double number); + +int main(void) { + int i, j = -1, primes[UPPER] = {0}; + + for(i = 1; i < UPPER; i++) + if(isPrime(i)) + primes[j++] = i; + + for(i = 0; i < j; i++) { + printf("1/%d: %.15f\n", primes[i], 1.0 / primes[i]); + } + + return 1; +} + +char* convertToDigits(double number) { + +} + +int isPrime(int number) { + int i; + + for(i = 2; i * i < number; i += 2) { + if(number % i == 0 && i != number) { + return 0; + } + } + + return 1; +} \ No newline at end of file diff --git a/C/3-a.c b/C/3-a.c new file mode 100755 index 0000000..002269f --- /dev/null +++ b/C/3-a.c @@ -0,0 +1,37 @@ +#include +#include + +// The prime factors of 13195 are 5, 7, 13 and 29. + +// What is the largest prime factor of the number 600,851,475,143 ? +void main() { + long long number = 600851475143; + + int i = (int) (sqrt(number) + 0.5); + + while(i > 2) { + double quotient = (double)number / (double)i; + + if(quotient / 1.0 == (int)quotient) { + int bool = isPrime(i); + if(bool == 1) { + printf("\n\nLargest Prime Factor: %d", i); + break; + } + } + + //decrement i; preferably only going through odds? + i = i - 1; + } +} + +int isPrime(int number) { + int i; + for(i = 2; i < number; i++) { + if(number % i == 0 && i != number) { + return 0; + } + } + + return 1; +} \ No newline at end of file diff --git a/C/3-b.c b/C/3-b.c new file mode 100755 index 0000000..002269f --- /dev/null +++ b/C/3-b.c @@ -0,0 +1,37 @@ +#include +#include + +// The prime factors of 13195 are 5, 7, 13 and 29. + +// What is the largest prime factor of the number 600,851,475,143 ? +void main() { + long long number = 600851475143; + + int i = (int) (sqrt(number) + 0.5); + + while(i > 2) { + double quotient = (double)number / (double)i; + + if(quotient / 1.0 == (int)quotient) { + int bool = isPrime(i); + if(bool == 1) { + printf("\n\nLargest Prime Factor: %d", i); + break; + } + } + + //decrement i; preferably only going through odds? + i = i - 1; + } +} + +int isPrime(int number) { + int i; + for(i = 2; i < number; i++) { + if(number % i == 0 && i != number) { + return 0; + } + } + + return 1; +} \ No newline at end of file diff --git a/C/3-bitrake.c b/C/3-bitrake.c new file mode 100755 index 0000000..ab4eefc --- /dev/null +++ b/C/3-bitrake.c @@ -0,0 +1,14 @@ +#include + +void main() { + long long number = 600851475143; + int divisor = 2; + while (number > 1) { + if (0 == (number % divisor)) { + number /= divisor; + divisor--; + } + divisor++; + } + printf("%d", divisor); +} \ No newline at end of file diff --git a/C/4-a.c b/C/4-a.c new file mode 100755 index 0000000..83b91e4 --- /dev/null +++ b/C/4-a.c @@ -0,0 +1,34 @@ +#include +#include + +// A palindromic number reads the same both ways. The largest palindrome made from the product of two 2-digit numbers is 9009 = 91 99. + +// Find the largest palindrome made from the product of two 3-digit numbers. + +void main() { + int i, j, k, palindrome; + + for(i = 100; i < 1000; i++) { + for(j = 100; j < 1000; j++) { + int product = i * j; + + //test if product is palindrome and store + int reverse = 0, number = product; + + while(number > 0) { + int last = number % 10; // find the last digit + reverse = reverse * 10 + last; // push over the reverse and tack on the last digit + number = number / 10; // chop off the last digit + } + + if(product == reverse) { + if(product > palindrome) { + palindrome = product; + } + } + + } + } + + printf("%d", palindrome); +} \ No newline at end of file diff --git a/C/5-a.c b/C/5-a.c new file mode 100755 index 0000000..615b331 --- /dev/null +++ b/C/5-a.c @@ -0,0 +1,26 @@ +#include + +// 2520 is the smallest number that can be divided by each of the numbers from 1 to 10 without any remainder. + +// What is the smallest positive number that is evenly divisible by all of the numbers from 1 to 20? + +void main() { + int i = 20; //no smaller than this + int j; + + while(1) { + for(j = 19; j > 0; j--) { + if(i % j != 0) { + break; + } + } + + if(j == 0) { + break; + } + + i += 20; + } + + printf("%d", i); +} \ No newline at end of file diff --git a/C/6-a.c b/C/6-a.c new file mode 100755 index 0000000..6ab5d23 --- /dev/null +++ b/C/6-a.c @@ -0,0 +1,31 @@ +#include + +// The sum of the squares of the first ten natural numbers is, + +// 1^2 + 2^2 + ... + 10^2 = 385 +// The square of the sum of the first ten natural numbers is, + +// (1 + 2 + ... + 10)^2 = 55^2 = 3025 +// Hence the difference between the sum of the squares of the first ten natural numbers and the square of the sum is 3025 385 = 2640. + +// Find the difference between the sum of the squares of the first one hundred natural numbers and the square of the sum. + +void main() { + int sumOfSquares = 0; + + int i = 0; + for(i = 1; i <= 100; i++) { + sumOfSquares += i * i; + } + + int squareOfSums = 0; + for(i = 1; i <= 100; i++) { + squareOfSums += i; + } + + squareOfSums *= squareOfSums; + + int difference = squareOfSums - sumOfSquares; + + printf("%d", difference); +} \ No newline at end of file diff --git a/C/7-a.c b/C/7-a.c new file mode 100755 index 0000000..b908b4e --- /dev/null +++ b/C/7-a.c @@ -0,0 +1,36 @@ +#include + +// By listing the first six prime numbers: 2, 3, 5, 7, 11, and 13, we can see that the 6th prime is 13. + +// What is the 10 001st prime number? + +void main() { + int primes = 0; + int i = 1; + + while(1) { + if(isPrime(i) == 1) { + primes++; + } + + if(primes == 10001) { + break; + } + + i++; + } + + printf("%d", i); +} + +int isPrime(int number) { + int i; + + if(number % 2 == 0) return 0; + + for(i = number; i > 2; i -= 2) { + if(number % i == 0 && i != number) return 0; + } + + return 1; +} \ No newline at end of file diff --git a/C/8-a.c b/C/8-a.c new file mode 100755 index 0000000..df4ce9e --- /dev/null +++ b/C/8-a.c @@ -0,0 +1,83 @@ +#include + +// Find the greatest product of five consecutive digits in the 1000-digit number. + +// 73167176531330624919225119674426574742355349194934 +// 96983520312774506326239578318016984801869478851843 +// 85861560789112949495459501737958331952853208805511 +// 12540698747158523863050715693290963295227443043557 +// 66896648950445244523161731856403098711121722383113 +// 62229893423380308135336276614282806444486645238749 +// 30358907296290491560440772390713810515859307960866 +// 70172427121883998797908792274921901699720888093776 +// 65727333001053367881220235421809751254540594752243 +// 52584907711670556013604839586446706324415722155397 +// 53697817977846174064955149290862569321978468622482 +// 83972241375657056057490261407972968652414535100474 +// 82166370484403199890008895243450658541227588666881 +// 16427171479924442928230863465674813919123162824586 +// 17866458359124566529476545682848912883142607690042 +// 24219022671055626321111109370544217506941658960408 +// 07198403850962455444362981230987879927244284909188 +// 84580156166097919133875499200524063689912560717606 +// 05886116467109405077541002256983155200055935729725 +// 71636269561882670428252483600823257530420752963450 + + +void main() { + int i,k; + int greatestProduct = 0; + for(i = 0; i < 1000; i++) { + if(i >= 4) { + //get previous 5 locations + int values[5] = { + getValue(i), + getValue(i - 1), + getValue(i - 2), + getValue(i - 3), + getValue(i - 4), + }; + + int currentProduct = 1; + for(k = 0; k < 5; k++) { + currentProduct *= values[k]; + } + + if(currentProduct > greatestProduct) { + greatestProduct = currentProduct; + } + } + } + + printf("%d", greatestProduct); +} + +int getValue(int number) { + int oneThousand[20][50] = { + {7,3,1,6,7,1,7,6,5,3,1,3,3,0,6,2,4,9,1,9,2,2,5,1,1,9,6,7,4,4,2,6,5,7,4,7,4,2,3,5,5,3,4,9,1,9,4,9,3,4}, + {9,6,9,8,3,5,2,0,3,1,2,7,7,4,5,0,6,3,2,6,2,3,9,5,7,8,3,1,8,0,1,6,9,8,4,8,0,1,8,6,9,4,7,8,8,5,1,8,4,3}, + {8,5,8,6,1,5,6,0,7,8,9,1,1,2,9,4,9,4,9,5,4,5,9,5,0,1,7,3,7,9,5,8,3,3,1,9,5,2,8,5,3,2,0,8,8,0,5,5,1,1}, + {1,2,5,4,0,6,9,8,7,4,7,1,5,8,5,2,3,8,6,3,0,5,0,7,1,5,6,9,3,2,9,0,9,6,3,2,9,5,2,2,7,4,4,3,0,4,3,5,5,7}, + {6,6,8,9,6,6,4,8,9,5,0,4,4,5,2,4,4,5,2,3,1,6,1,7,3,1,8,5,6,4,0,3,0,9,8,7,1,1,1,2,1,7,2,2,3,8,3,1,1,3}, + {6,2,2,2,9,8,9,3,4,2,3,3,8,0,3,0,8,1,3,5,3,3,6,2,7,6,6,1,4,2,8,2,8,0,6,4,4,4,4,8,6,6,4,5,2,3,8,7,4,9}, + {3,0,3,5,8,9,0,7,2,9,6,2,9,0,4,9,1,5,6,0,4,4,0,7,7,2,3,9,0,7,1,3,8,1,0,5,1,5,8,5,9,3,0,7,9,6,0,8,6,6}, + {7,0,1,7,2,4,2,7,1,2,1,8,8,3,9,9,8,7,9,7,9,0,8,7,9,2,2,7,4,9,2,1,9,0,1,6,9,9,7,2,0,8,8,8,0,9,3,7,7,6}, + {6,5,7,2,7,3,3,3,0,0,1,0,5,3,3,6,7,8,8,1,2,2,0,2,3,5,4,2,1,8,0,9,7,5,1,2,5,4,5,4,0,5,9,4,7,5,2,2,4,3}, + {5,2,5,8,4,9,0,7,7,1,1,6,7,0,5,5,6,0,1,3,6,0,4,8,3,9,5,8,6,4,4,6,7,0,6,3,2,4,4,1,5,7,2,2,1,5,5,3,9,7}, + {5,3,6,9,7,8,1,7,9,7,7,8,4,6,1,7,4,0,6,4,9,5,5,1,4,9,2,9,0,8,6,2,5,6,9,3,2,1,9,7,8,4,6,8,6,2,2,4,8,2}, + {8,3,9,7,2,2,4,1,3,7,5,6,5,7,0,5,6,0,5,7,4,9,0,2,6,1,4,0,7,9,7,2,9,6,8,6,5,2,4,1,4,5,3,5,1,0,0,4,7,4}, + {8,2,1,6,6,3,7,0,4,8,4,4,0,3,1,9,9,8,9,0,0,0,8,8,9,5,2,4,3,4,5,0,6,5,8,5,4,1,2,2,7,5,8,8,6,6,6,8,8,1}, + {1,6,4,2,7,1,7,1,4,7,9,9,2,4,4,4,2,9,2,8,2,3,0,8,6,3,4,6,5,6,7,4,8,1,3,9,1,9,1,2,3,1,6,2,8,2,4,5,8,6}, + {1,7,8,6,6,4,5,8,3,5,9,1,2,4,5,6,6,5,2,9,4,7,6,5,4,5,6,8,2,8,4,8,9,1,2,8,8,3,1,4,2,6,0,7,6,9,0,0,4,2}, + {2,4,2,1,9,0,2,2,6,7,1,0,5,5,6,2,6,3,2,1,1,1,1,1,0,9,3,7,0,5,4,4,2,1,7,5,0,6,9,4,1,6,5,8,9,6,0,4,0,8}, + {0,7,1,9,8,4,0,3,8,5,0,9,6,2,4,5,5,4,4,4,3,6,2,9,8,1,2,3,0,9,8,7,8,7,9,9,2,7,2,4,4,2,8,4,9,0,9,1,8,8}, + {8,4,5,8,0,1,5,6,1,6,6,0,9,7,9,1,9,1,3,3,8,7,5,4,9,9,2,0,0,5,2,4,0,6,3,6,8,9,9,1,2,5,6,0,7,1,7,6,0,6}, + {0,5,8,8,6,1,1,6,4,6,7,1,0,9,4,0,5,0,7,7,5,4,1,0,0,2,2,5,6,9,8,3,1,5,5,2,0,0,0,5,5,9,3,5,7,2,9,7,2,5}, + {7,1,6,3,6,2,6,9,5,6,1,8,8,2,6,7,0,4,2,8,2,5,2,4,8,3,6,0,0,8,2,3,2,5,7,5,3,0,4,2,0,7,5,2,9,6,3,4,5,0} + }; + + int row = (int)(number / 50 + 0.5); + int column = number % 50; + + return oneThousand[row][column]; +} \ No newline at end of file diff --git a/C/8-b.c b/C/8-b.c new file mode 100755 index 0000000..0147c0c --- /dev/null +++ b/C/8-b.c @@ -0,0 +1,9 @@ +#include + +//testing rounding + +void main() { + int row = (int)(50 / 50 + 0.5); + + printf("%d", row); +} \ No newline at end of file diff --git a/C/8-c.c b/C/8-c.c new file mode 100755 index 0000000..ac49811 --- /dev/null +++ b/C/8-c.c @@ -0,0 +1,23 @@ +#include + +void main() { + char oneThouseand[] = "7316717653133062491922511967442657474235534919493496983520312774506326239578318016984801869478851843858615607891129494954595017379583319528532088055111254069874715852386305071569329096329522744304355766896648950445244523161731856403098711121722383113622298934233803081353362766142828064444866452387493035890729629049156044077239071381051585930796086670172427121883998797908792274921901699720888093776657273330010533678812202354218097512545405947522435258490771167055601360483958644670632441572215539753697817977846174064955149290862569321978468622482839722413756570560574902614079729686524145351004748216637048440319989000889524345065854122758866688116427171479924442928230863465674813919123162824586178664583591245665294765456828489128831426076900422421902267105562632111110937054421750694165896040807198403850962455444362981230987879927244284909188845801561660979191338754992005240636899125607176060588611646710940507754100225698315520005593572972571636269561882670428252483600823257530420752963450"; + + int i, k; + int greatestProduct = 0; + for(i = 0; i < 1000; i++) { + if(i >= 4) { + int currentProduct = 1; + + for(k = i - 4; k <= i; k++) { + currentProduct *= (oneThouseand[k] - 48); + } + + if(currentProduct > greatestProduct) { + greatestProduct = currentProduct; + } + } + } + + printf("%d", greatestProduct); +} \ No newline at end of file diff --git a/C/9-a.c b/C/9-a.c new file mode 100755 index 0000000..5728505 --- /dev/null +++ b/C/9-a.c @@ -0,0 +1,33 @@ +#include + +// A Pythagorean triplet is a set of three natural numbers, a b c, for which, + +// a2^ + b^2 = c^2 +// For example, 3^2 + 4^2 = 9 + 16 = 25 = 5^2. + +// There exists exactly one Pythagorean triplet for which a + b + c = 1000. +// Find the product abc. + +int main() { + int n, m; + + int a, b, c; + + for(n = 1; n < 20; n++) { + for(m = n + 1; m <= 20; m++) { + a = m*m - n*n; + b = 2*n*m; + c = n*n + m*m; + + printf("\n%d + %d + %d = %d", a, b, c, a + b + c); + + if(a + b + c == 1000) goto found; + } + } + + found: + printf("\n\n%d^2 + %d^2 = %d^2", a, b, c); + printf("\n\nProduct = %d", a * b * c); + + return 1; +} \ No newline at end of file diff --git a/C/nohup.out b/C/nohup.out new file mode 100644 index 0000000..e69de29 diff --git a/PHP/16-b.php b/PHP/16-b.php new file mode 100755 index 0000000..98e92cf --- /dev/null +++ b/PHP/16-b.php @@ -0,0 +1,10 @@ + 0; $i--) + $factorial = bcmul($factorial, $i); + +$sum = 0; +foreach(str_split($factorial) as $number) + $sum += $number; + +echo $sum; \ No newline at end of file diff --git a/README b/README new file mode 100644 index 0000000..c7df67d --- /dev/null +++ b/README @@ -0,0 +1 @@ +Solutions for Project Euler. Solutions are numbered after the corresponding problem number with one of two things: a number that signifies the current iteration of a solution or a name when the solution is someone else's. \ No newline at end of file