├── .gitignore ├── 1-9 ├── problem1.c ├── problem2.c ├── problem3.c ├── problem4.c ├── problem5.c ├── problem6.c ├── problem7.c ├── problem8.c └── problem9.c ├── 10-19 ├── problem10.c ├── problem11.c ├── problem12.c ├── problem13.c ├── problem14.c ├── problem15.c ├── problem16.c ├── problem17.c ├── problem18.c └── problem19.c ├── 20-29 ├── names.txt ├── problem20.c ├── problem21.c ├── problem22.c ├── problem23.c ├── problem24.cc ├── problem25.c ├── problem26.c ├── problem27.c ├── problem28.c └── problem29.c ├── 30-39 ├── problem30.c ├── problem31.c ├── problem32.c ├── problem33.c ├── problem34.c ├── problem35.c ├── problem36.c ├── problem37.c ├── problem38.c └── problem39.c ├── 40-49 ├── problem40.c ├── problem41.cc ├── problem42.c ├── problem43.cc ├── problem44.c ├── problem45.c ├── problem46.c ├── problem47.c ├── problem48.c ├── problem49.cc └── words.txt └── README /.gitignore: -------------------------------------------------------------------------------- 1 | a.out 2 | *.o 3 | -------------------------------------------------------------------------------- /1-9/problem1.c: -------------------------------------------------------------------------------- 1 | /* 2 | * Copyright (c) 2009, eagletmt 3 | * Released under the MIT License 4 | */ 5 | 6 | #include 7 | 8 | int main(void) 9 | { 10 | int s3 = 0, s5 = 0, s15 = 0; 11 | int i; 12 | 13 | for (i = 0; i < 1000; i++) { 14 | if (i % 3 == 0) { 15 | s3 += i; 16 | } 17 | if (i % 5 == 0) { 18 | s5 += i; 19 | } 20 | if (i % 15 == 0) { 21 | s15 += i; 22 | } 23 | } 24 | printf("%d\n", s3 + s5 - s15); 25 | 26 | return 0; 27 | } 28 | 29 | -------------------------------------------------------------------------------- /1-9/problem2.c: -------------------------------------------------------------------------------- 1 | /* 2 | * Copyright (c) 2009, eagletmt 3 | * Released under the MIT License 4 | */ 5 | 6 | #include 7 | 8 | int main(void) 9 | { 10 | unsigned int a1 = 1, a2 = 1, a3 = 2, sum = 0; 11 | 12 | while (a3 < 4000000) { 13 | a3 = a1 + a2; 14 | sum += a3 * !(a3%2); 15 | a1 = a2; 16 | a2 = a3; 17 | } 18 | 19 | printf("%u\n", sum); 20 | 21 | return 0; 22 | } 23 | 24 | -------------------------------------------------------------------------------- /1-9/problem3.c: -------------------------------------------------------------------------------- 1 | /* 2 | * Copyright (c) 2009, eagletmt 3 | * Released under the MIT License 4 | */ 5 | 6 | #include 7 | 8 | int main(void) 9 | { 10 | unsigned long long n = 600851475143ULL; 11 | unsigned long long i; 12 | 13 | for (i = 2ULL; i < n; i++) { 14 | while (n % i == 0) { 15 | n /= i; 16 | } 17 | } 18 | printf("%llu\n", n); 19 | 20 | return 0; 21 | } 22 | 23 | -------------------------------------------------------------------------------- /1-9/problem4.c: -------------------------------------------------------------------------------- 1 | /* 2 | * Copyright (c) 2009, eagletmt 3 | * Released under the MIT License 4 | */ 5 | 6 | #include 7 | 8 | static int is_palindromic(unsigned int n); 9 | 10 | int main(void) 11 | { 12 | unsigned int i, j, max = 0; 13 | for (i = 100; i <= 999; i++) { 14 | for (j = 100; j <= 999; j++) { 15 | unsigned int p = i*j; 16 | if (is_palindromic(p) && p > max) { 17 | max = p; 18 | } 19 | } 20 | } 21 | printf("%u\n", max); 22 | return 0; 23 | } 24 | 25 | int is_palindromic(unsigned int n) 26 | { 27 | unsigned int reversed = 0, t = n; 28 | 29 | while (t) { 30 | reversed = 10*reversed + (t % 10); 31 | t /= 10; 32 | } 33 | return reversed == n; 34 | } 35 | 36 | -------------------------------------------------------------------------------- /1-9/problem5.c: -------------------------------------------------------------------------------- 1 | /* 2 | * Copyright (c) 2009, eagletmt 3 | * Released under the MIT License 4 | */ 5 | 6 | #include 7 | 8 | static unsigned long gcd(unsigned long a, unsigned long b); 9 | static __inline unsigned long lcm(unsigned long a, unsigned long b); 10 | 11 | int main(void) 12 | { 13 | unsigned long ans = 1; 14 | unsigned long i; 15 | 16 | for (i = 1; i <= 20; i++) { 17 | ans = lcm(ans, i); 18 | } 19 | printf("%lu\n", ans); 20 | return 0; 21 | } 22 | 23 | unsigned long gcd(unsigned long a, unsigned long b) 24 | { 25 | unsigned long r; 26 | 27 | if (a > b) { 28 | unsigned long t = a; 29 | a = b; 30 | b = t; 31 | } 32 | 33 | while (r = a%b) { 34 | a = b; 35 | b = r; 36 | } 37 | return b; 38 | } 39 | 40 | unsigned long lcm(unsigned long a, unsigned long b) 41 | { 42 | unsigned long long p = (unsigned long long)a * b; 43 | return p/gcd(a, b); 44 | } 45 | -------------------------------------------------------------------------------- /1-9/problem6.c: -------------------------------------------------------------------------------- 1 | /* 2 | * Copyright (c) 2009, eagletmt 3 | * Released under the MIT License 4 | */ 5 | 6 | #include 7 | 8 | int main(void) 9 | { 10 | unsigned s1 = 0, s2 = 0, i; 11 | 12 | for (i = 1; i <= 100; i++) { 13 | s1 += i*i; 14 | s2 += i; 15 | } 16 | printf("%u\n", s2*s2 - s1); 17 | return 0; 18 | } 19 | 20 | -------------------------------------------------------------------------------- /1-9/problem7.c: -------------------------------------------------------------------------------- 1 | /* 2 | * Copyright (c) 2009, eagletmt 3 | * Released under the MIT License 4 | */ 5 | 6 | #include 7 | #include 8 | 9 | int main(void) 10 | { 11 | char *sieve; 12 | size_t i; 13 | unsigned count = 0; 14 | size_t n = 1000000; 15 | const unsigned target = 10001; 16 | 17 | sieve = calloc(n, sizeof *sieve); 18 | for (i = 2; i < n; i++) { 19 | if (!sieve[i]) { 20 | size_t j; 21 | 22 | count++; 23 | if (count == target) { 24 | printf("%lu\n", i); 25 | break; 26 | } 27 | for (j = i*2; j < n; j += i) { 28 | sieve[j] = 1; 29 | } 30 | } 31 | } 32 | free(sieve); 33 | 34 | return 0; 35 | } 36 | 37 | -------------------------------------------------------------------------------- /1-9/problem8.c: -------------------------------------------------------------------------------- 1 | /* 2 | * Copyright (c) 2009, eagletmt 3 | * Released under the MIT License 4 | */ 5 | 6 | #include 7 | 8 | int main(void) 9 | { 10 | char str[] = 11 | "73167176531330624919225119674426574742355349194934" 12 | "96983520312774506326239578318016984801869478851843" 13 | "85861560789112949495459501737958331952853208805511" 14 | "12540698747158523863050715693290963295227443043557" 15 | "66896648950445244523161731856403098711121722383113" 16 | "62229893423380308135336276614282806444486645238749" 17 | "30358907296290491560440772390713810515859307960866" 18 | "70172427121883998797908792274921901699720888093776" 19 | "65727333001053367881220235421809751254540594752243" 20 | "52584907711670556013604839586446706324415722155397" 21 | "53697817977846174064955149290862569321978468622482" 22 | "83972241375657056057490261407972968652414535100474" 23 | "82166370484403199890008895243450658541227588666881" 24 | "16427171479924442928230863465674813919123162824586" 25 | "17866458359124566529476545682848912883142607690042" 26 | "24219022671055626321111109370544217506941658960408" 27 | "07198403850962455444362981230987879927244284909188" 28 | "84580156166097919133875499200524063689912560717606" 29 | "05886116467109405077541002256983155200055935729725" 30 | "71636269561882670428252483600823257530420752963450"; 31 | size_t len = sizeof str - 1; 32 | size_t i; 33 | unsigned max = 0; 34 | 35 | for (i = 0; i < len-4; i++) { 36 | unsigned p = 1; 37 | size_t j; 38 | 39 | for (j = 0; j < 5; j++) { 40 | p *= (unsigned)(str[i+j]-'0'); 41 | } 42 | if (p > max) { 43 | max = p; 44 | } 45 | } 46 | printf("%u\n", max); 47 | return 0; 48 | } 49 | 50 | -------------------------------------------------------------------------------- /1-9/problem9.c: -------------------------------------------------------------------------------- 1 | /* 2 | * Copyright (c) 2009, eagletmt 3 | * Released under the MIT License 4 | */ 5 | 6 | #include 7 | 8 | int main(void) 9 | { 10 | int a, b; 11 | 12 | for (a = 1; a <= 333; a++) { 13 | for (b = a; b <= 666; b++) { 14 | int c = (1000 - a - b); 15 | if (a*a + b*b == c*c) { 16 | printf("%d\n", a * b * c); 17 | } 18 | } 19 | } 20 | return 0; 21 | } 22 | 23 | -------------------------------------------------------------------------------- /10-19/problem10.c: -------------------------------------------------------------------------------- 1 | /* 2 | * Copyright (c) 2009, eagletmt 3 | * Released under the MIT License 4 | */ 5 | 6 | #include 7 | #include 8 | 9 | int main(void) 10 | { 11 | char *sieve; 12 | unsigned i, j; 13 | size_t n = 2000000; 14 | unsigned long long sum = 0ULL; 15 | 16 | sieve = calloc(n, sizeof *sieve); 17 | for (i = 2; i < n; i++) { 18 | if (!sieve[i]) { 19 | sum += i; 20 | for (j = i*2; j < n; j += i) { 21 | sieve[j] = 1; 22 | } 23 | } 24 | } 25 | free(sieve); 26 | 27 | printf("%llu\n", sum); 28 | 29 | return 0; 30 | } 31 | 32 | -------------------------------------------------------------------------------- /10-19/problem11.c: -------------------------------------------------------------------------------- 1 | /* 2 | * Copyright (c) 2009, eagletmt 3 | * Released under the MIT License 4 | */ 5 | 6 | #include 7 | 8 | #define N 20 9 | 10 | static __inline unsigned max(unsigned a, unsigned b); 11 | 12 | int main(void) 13 | { 14 | unsigned grid[20][20] = { 15 | {8,2,22,97,38,15,0,40,0,75,4,5,7,78,52,12,50,77,91,8}, 16 | {49,49,99,40,17,81,18,57,60,87,17,40,98,43,69,48,4,56,62,0}, 17 | {81,49,31,73,55,79,14,29,93,71,40,67,53,88,30,3,49,13,36,65}, 18 | {52,70,95,23,4,60,11,42,69,24,68,56,1,32,56,71,37,2,36,91}, 19 | {22,31,16,71,51,67,63,89,41,92,36,54,22,40,40,28,66,33,13,80}, 20 | {24,47,32,60,99,3,45,2,44,75,33,53,78,36,84,20,35,17,12,50}, 21 | {32,98,81,28,64,23,67,10,26,38,40,67,59,54,70,66,18,38,64,70}, 22 | {67,26,20,68,2,62,12,20,95,63,94,39,63,8,40,91,66,49,94,21}, 23 | {24,55,58,5,66,73,99,26,97,17,78,78,96,83,14,88,34,89,63,72}, 24 | {21,36,23,9,75,0,76,44,20,45,35,14,0,61,33,97,34,31,33,95}, 25 | {78,17,53,28,22,75,31,67,15,94,3,80,4,62,16,14,9,53,56,92}, 26 | {16,39,5,42,96,35,31,47,55,58,88,24,0,17,54,24,36,29,85,57}, 27 | {86,56,0,48,35,71,89,7,5,44,44,37,44,60,21,58,51,54,17,58}, 28 | {19,80,81,68,5,94,47,69,28,73,92,13,86,52,17,77,4,89,55,40}, 29 | {4,52,8,83,97,35,99,16,7,97,57,32,16,26,26,79,33,27,98,66}, 30 | {88,36,68,87,57,62,20,72,3,46,33,67,46,55,12,32,63,93,53,69}, 31 | {4,42,16,73,38,25,39,11,24,94,72,18,8,46,29,32,40,62,76,36}, 32 | {20,69,36,41,72,30,23,88,34,62,99,69,82,67,59,85,74,4,36,16}, 33 | {20,73,35,29,78,31,90,1,74,31,49,71,48,86,81,16,23,57,5,54}, 34 | {1,70,54,71,83,51,54,69,16,92,33,48,61,43,52,1,89,19,67,48}, 35 | }; 36 | unsigned m = 0; 37 | unsigned i, j; 38 | 39 | for (i = 0; i < N-3; i++) { 40 | for (j = 0; j < N-3; j++) { 41 | unsigned h = grid[i][j] * grid[i][j+1] * grid[i][j+2] * grid[i][j+3]; 42 | unsigned v = grid[j][i] * grid[j+1][i] * grid[j+2][i] * grid[j+3][i]; 43 | unsigned d1 = grid[i][j] * grid[i+1][j+1] * grid[i+2][j+2] * grid[i+3][j+3]; 44 | unsigned d2 = grid[i][N-j-1] * grid[i+1][N-j-2] * grid[i+2][N-j-3] * grid[i+3][N-j-4]; 45 | m = max(m, max(h, max(v, max(d1, d2)))); 46 | } 47 | } 48 | printf("%u\n", m); 49 | 50 | return 0; 51 | } 52 | 53 | unsigned max(unsigned a, unsigned b) 54 | { 55 | return a > b ? a : b; 56 | } 57 | 58 | -------------------------------------------------------------------------------- /10-19/problem12.c: -------------------------------------------------------------------------------- 1 | /* 2 | * Copyright (c) 2009, eagletmt 3 | * Released under the MIT License 4 | */ 5 | 6 | #include 7 | 8 | static unsigned divisor_count(unsigned long n); 9 | 10 | int main(void) 11 | { 12 | unsigned long i = 1, n = 1; 13 | 14 | while (divisor_count(n) < 500) { 15 | n += ++i; 16 | } 17 | printf("%lu\n", n); 18 | return 0; 19 | } 20 | 21 | unsigned divisor_count(unsigned long n) 22 | { 23 | unsigned ret = 1; 24 | unsigned long i; 25 | 26 | for (i = 2; i <= n; i++) { 27 | unsigned c = 0; 28 | while (n % i == 0) { 29 | c++; 30 | n /= i; 31 | } 32 | ret *= c+1; 33 | } 34 | return ret; 35 | } 36 | 37 | -------------------------------------------------------------------------------- /10-19/problem13.c: -------------------------------------------------------------------------------- 1 | /* 2 | * Copyright (c) 2009, eagletmt 3 | * Released under the MIT License 4 | */ 5 | 6 | #include 7 | #include 8 | #include 9 | 10 | #define N 100 11 | 12 | int main(void) 13 | { 14 | char digits[][N] = { 15 | "37107287533902102798797998220837590246510135740250", 16 | "46376937677490009712648124896970078050417018260538", 17 | "74324986199524741059474233309513058123726617309629", 18 | "91942213363574161572522430563301811072406154908250", 19 | "23067588207539346171171980310421047513778063246676", 20 | "89261670696623633820136378418383684178734361726757", 21 | "28112879812849979408065481931592621691275889832738", 22 | "44274228917432520321923589422876796487670272189318", 23 | "47451445736001306439091167216856844588711603153276", 24 | "70386486105843025439939619828917593665686757934951", 25 | "62176457141856560629502157223196586755079324193331", 26 | "64906352462741904929101432445813822663347944758178", 27 | "92575867718337217661963751590579239728245598838407", 28 | "58203565325359399008402633568948830189458628227828", 29 | "80181199384826282014278194139940567587151170094390", 30 | "35398664372827112653829987240784473053190104293586", 31 | "86515506006295864861532075273371959191420517255829", 32 | "71693888707715466499115593487603532921714970056938", 33 | "54370070576826684624621495650076471787294438377604", 34 | "53282654108756828443191190634694037855217779295145", 35 | "36123272525000296071075082563815656710885258350721", 36 | "45876576172410976447339110607218265236877223636045", 37 | "17423706905851860660448207621209813287860733969412", 38 | "81142660418086830619328460811191061556940512689692", 39 | "51934325451728388641918047049293215058642563049483", 40 | "62467221648435076201727918039944693004732956340691", 41 | "15732444386908125794514089057706229429197107928209", 42 | "55037687525678773091862540744969844508330393682126", 43 | "18336384825330154686196124348767681297534375946515", 44 | "80386287592878490201521685554828717201219257766954", 45 | "78182833757993103614740356856449095527097864797581", 46 | "16726320100436897842553539920931837441497806860984", 47 | "48403098129077791799088218795327364475675590848030", 48 | "87086987551392711854517078544161852424320693150332", 49 | "59959406895756536782107074926966537676326235447210", 50 | "69793950679652694742597709739166693763042633987085", 51 | "41052684708299085211399427365734116182760315001271", 52 | "65378607361501080857009149939512557028198746004375", 53 | "35829035317434717326932123578154982629742552737307", 54 | "94953759765105305946966067683156574377167401875275", 55 | "88902802571733229619176668713819931811048770190271", 56 | "25267680276078003013678680992525463401061632866526", 57 | "36270218540497705585629946580636237993140746255962", 58 | "24074486908231174977792365466257246923322810917141", 59 | "91430288197103288597806669760892938638285025333403", 60 | "34413065578016127815921815005561868836468420090470", 61 | "23053081172816430487623791969842487255036638784583", 62 | "11487696932154902810424020138335124462181441773470", 63 | "63783299490636259666498587618221225225512486764533", 64 | "67720186971698544312419572409913959008952310058822", 65 | "95548255300263520781532296796249481641953868218774", 66 | "76085327132285723110424803456124867697064507995236", 67 | "37774242535411291684276865538926205024910326572967", 68 | "23701913275725675285653248258265463092207058596522", 69 | "29798860272258331913126375147341994889534765745501", 70 | "18495701454879288984856827726077713721403798879715", 71 | "38298203783031473527721580348144513491373226651381", 72 | "34829543829199918180278916522431027392251122869539", 73 | "40957953066405232632538044100059654939159879593635", 74 | "29746152185502371307642255121183693803580388584903", 75 | "41698116222072977186158236678424689157993532961922", 76 | "62467957194401269043877107275048102390895523597457", 77 | "23189706772547915061505504953922979530901129967519", 78 | "86188088225875314529584099251203829009407770775672", 79 | "11306739708304724483816533873502340845647058077308", 80 | "82959174767140363198008187129011875491310547126581", 81 | "97623331044818386269515456334926366572897563400500", 82 | "42846280183517070527831839425882145521227251250327", 83 | "55121603546981200581762165212827652751691296897789", 84 | "32238195734329339946437501907836945765883352399886", 85 | "75506164965184775180738168837861091527357929701337", 86 | "62177842752192623401942399639168044983993173312731", 87 | "32924185707147349566916674687634660915035914677504", 88 | "99518671430235219628894890102423325116913619626622", 89 | "73267460800591547471830798392868535206946944540724", 90 | "76841822524674417161514036427982273348055556214818", 91 | "97142617910342598647204516893989422179826088076852", 92 | "87783646182799346313767754307809363333018982642090", 93 | "10848802521674670883215120185883543223812876952786", 94 | "71329612474782464538636993009049310363619763878039", 95 | "62184073572399794223406235393808339651327408011116", 96 | "66627891981488087797941876876144230030984490851411", 97 | "60661826293682836764744779239180335110989069790714", 98 | "85786944089552990653640447425576083659976645795096", 99 | "66024396409905389607120198219976047599490197230297", 100 | "64913982680032973156037120041377903785566085089252", 101 | "16730939319872750275468906903707539413042652315011", 102 | "94809377245048795150954100921645863754710598436791", 103 | "78639167021187492431995700641917969777599028300699", 104 | "15368713711936614952811305876380278410754449733078", 105 | "40789923115535562561142322423255033685442488917353", 106 | "44889911501440648020369068063960672322193204149535", 107 | "41503128880339536053299340368006977710650566631954", 108 | "81234880673210146739058568557934581403627822703280", 109 | "82616570773948327592232845941706525094512325230608", 110 | "22918802058777319719839450180888072429661980811197", 111 | "77158542502016545090413245809786882778948721859617", 112 | "72107838435069186155435662884062257473692284509516", 113 | "20849603980134001723930671666823555245252804609722", 114 | "53503534226472524250874054075591789781264330331690", 115 | }; 116 | 117 | int i; 118 | char *str; 119 | mpz_t sum, t; 120 | 121 | mpz_init_set_ui(sum, 0); 122 | mpz_init(t); 123 | for (i = 0; i < N; i++) { 124 | mpz_set_str(t, digits[i], 10); 125 | mpz_add(sum, sum, t); 126 | } 127 | 128 | str = mpz_get_str(NULL, 10, sum); 129 | str[10] = 0; 130 | puts(str); 131 | 132 | free(str); 133 | mpz_clear(sum); 134 | mpz_clear(t); 135 | 136 | return 0; 137 | } 138 | 139 | -------------------------------------------------------------------------------- /10-19/problem14.c: -------------------------------------------------------------------------------- 1 | /* 2 | * Copyright (c) 2009, eagletmt 3 | * Released under the MIT License 4 | */ 5 | 6 | #include 7 | 8 | static unsigned collatz_count(unsigned n); 9 | 10 | int main(void) 11 | { 12 | unsigned i, max_c = 0, max_i = 0; 13 | 14 | for (i = 1; i < 1000000; i++) { 15 | unsigned c = collatz_count(i); 16 | if (c > max_c) { 17 | max_c = c; 18 | max_i = i; 19 | } 20 | } 21 | printf("%u\n", max_i); 22 | return 0; 23 | } 24 | 25 | unsigned collatz_count(unsigned n) 26 | { 27 | unsigned c = 0; 28 | while (n > 1) { 29 | n = n%2==0 ? n/2 : 3*n+1; 30 | c++; 31 | } 32 | return c+1; 33 | } 34 | 35 | -------------------------------------------------------------------------------- /10-19/problem15.c: -------------------------------------------------------------------------------- 1 | /* 2 | * Copyright (c) 2009, eagletmt 3 | * Released under the MIT License 4 | */ 5 | 6 | #include 7 | #include 8 | 9 | int main(void) 10 | { 11 | mpz_t n, m; 12 | 13 | /* calculate 40C20 as 40! / (20! * 20!) */ 14 | mpz_init(n); mpz_init(m); 15 | mpz_fac_ui(n, 40); mpz_fac_ui(m, 20); 16 | mpz_mul(m, m, m); 17 | mpz_divexact(n, n, m); 18 | 19 | mpz_out_str(stdout, 10, n); 20 | putchar('\n'); 21 | 22 | mpz_clear(n); 23 | mpz_clear(m); 24 | 25 | return 0; 26 | } 27 | 28 | -------------------------------------------------------------------------------- /10-19/problem16.c: -------------------------------------------------------------------------------- 1 | /* 2 | * Copyright (c) 2009, eagletmt 3 | * Released under the MIT License 4 | */ 5 | 6 | #include 7 | #include 8 | #include 9 | 10 | int main(void) 11 | { 12 | mpz_t n; 13 | char *str; 14 | size_t len, i; 15 | unsigned sum = 0; 16 | 17 | mpz_init(n); 18 | mpz_ui_pow_ui(n, 2, 1000); 19 | 20 | str = mpz_get_str(NULL, 10, n); 21 | len = mpz_sizeinbase(n, 10); 22 | for (i = 0; i < len; i++) { 23 | sum += str[i]-'0'; 24 | } 25 | printf("%u\n", sum); 26 | 27 | free(str); 28 | mpz_clear(n); 29 | 30 | return 0; 31 | } 32 | 33 | -------------------------------------------------------------------------------- /10-19/problem17.c: -------------------------------------------------------------------------------- 1 | /* 2 | * Copyright (c) 2009, eagletmt 3 | * Released under the MIT License 4 | */ 5 | 6 | #include 7 | 8 | int main(void) 9 | { 10 | /* * one two three four five six seven eight nine */ 11 | unsigned s1[] = { 0, 3, 3, 5, 4, 4, 3, 5, 5, 4 }; 12 | /* ten eleven twelve thirteen fourteen fifteen sixteen seventeen eighteen nineteen */ 13 | unsigned s2[] = { 3, 6, 6, 8, 8, 7, 7, 9, 8, 8 }; 14 | /* * * twenty thirty forty fifty sixty seventy eighty ninety */ 15 | unsigned s3[] = { 0, 0, 6, 6, 5, 5, 5, 7, 6, 6 }; 16 | 17 | unsigned hundred = 7; 18 | unsigned and = 3; 19 | unsigned thousand = 8; 20 | 21 | unsigned i; 22 | unsigned sum = 0; 23 | 24 | /* from 1 to 9 */ 25 | for (i = 1; i < 10; i++) { 26 | sum += s1[i]; 27 | } 28 | /* from 10 to 19 */ 29 | for (i = 0; i < 10; i++) { 30 | sum += s2[i]; 31 | } 32 | /* from 20 to 99 */ 33 | for (i = 20; i < 100; i++) { 34 | sum += s3[i/10] + s1[i%10]; 35 | } 36 | /* from 100 to 999 */ 37 | for (i = 1; i < 10; i++) { 38 | int j; 39 | 40 | /* just i hundred */ 41 | sum += s1[i] + hundred; 42 | /* from i hundred and one to i hundred and nine */ 43 | for (j = 1; j < 10; j++) { 44 | sum += s1[i] + hundred + and + s1[j]; 45 | } 46 | /* from i hundred and ten to i hundred and nineteen */ 47 | for (j = 0; j < 10; j++) { 48 | sum += s1[i] + hundred + and + s2[j]; 49 | } 50 | /* from i hundred and twenty to i hundred and ninety-nine */ 51 | for (j = 20; j < 100; j++) { 52 | sum += s1[i] + hundred + and + s3[j/10] + s1[j%10]; 53 | } 54 | } 55 | /* just 1000 */ 56 | sum += s1[1] + thousand; 57 | 58 | printf("%u\n", sum); 59 | 60 | return 0; 61 | } 62 | 63 | -------------------------------------------------------------------------------- /10-19/problem18.c: -------------------------------------------------------------------------------- 1 | /* 2 | * Copyright (c) 2009, eagletmt 3 | * Released under the MIT License 4 | */ 5 | 6 | #include 7 | 8 | #define N 15 9 | 10 | static int findmax(const char triangle[][N], int row, int col); 11 | 12 | int main(void) 13 | { 14 | const char triangle[N][N] = { 15 | {75}, 16 | {95,64}, 17 | {17,47,82}, 18 | {18,35,87,10}, 19 | {20, 4,82,47,65}, 20 | {19, 1,23,75, 3,34}, 21 | {88, 2,77,73, 7,63,67}, 22 | {99,65, 4,28, 6,16,70,92}, 23 | {41,41,26,56,83,40,80,70,33}, 24 | {41,48,72,33,47,32,37,16,94,29}, 25 | {53,71,44,65,25,43,91,52,97,51,14}, 26 | {70,11,33,28,77,73,17,78,39,68,17,57}, 27 | {91,71,52,38,17,14,91,43,58,50,27,29,48}, 28 | {63,66, 4,68,89,53,67,30,73,16,69,87,40,31}, 29 | { 4,62,98,27,23, 9,70,98,73,93,38,53,60, 4,23}, 30 | }; 31 | 32 | printf("%d\n", findmax(triangle, 0, 0)); 33 | 34 | return 0; 35 | } 36 | 37 | /* recursive version. more elaborated version is found in problem67.c */ 38 | int findmax(const char triangle[][N], int row, int col) 39 | { 40 | int left, right; 41 | 42 | if (row == N) { 43 | return triangle[row][col]; 44 | } 45 | left = findmax(triangle, row+1, col); 46 | right = findmax(triangle, row+1, col+1); 47 | 48 | return triangle[row][col] + (left > right ? left : right); 49 | } 50 | 51 | -------------------------------------------------------------------------------- /10-19/problem19.c: -------------------------------------------------------------------------------- 1 | /* 2 | * Copyright (c) 2009, eagletmt 3 | * Released under the MIT License 4 | */ 5 | 6 | #include 7 | 8 | static int days(int y, int m); 9 | 10 | int main(void) 11 | { 12 | int year, wday = 0, sun = 0, mon; 13 | 14 | for (year = 1901; year <= 2000; year++) { 15 | for (mon = 1; mon <= 12; mon++) { 16 | if (wday == 5) { 17 | /* 1901-01-01 is Tuesday, so wday == 5 means Sunday */ 18 | sun++; 19 | } 20 | wday = (wday + days(year, mon))%7; 21 | } 22 | } 23 | printf("%d\n", sun); 24 | 25 | return 0; 26 | } 27 | 28 | int days(int y, int m) 29 | { 30 | switch (m) { 31 | case 2: 32 | if ((y%4 == 0 && y%100 != 0) || y%400 == 0) { 33 | /* leap year */ 34 | return 29; 35 | } 36 | else { 37 | return 28; 38 | } 39 | 40 | case 4: 41 | case 6: 42 | case 9: 43 | case 11: 44 | return 30; 45 | 46 | default: 47 | return 31; 48 | } 49 | } 50 | 51 | -------------------------------------------------------------------------------- /20-29/names.txt: -------------------------------------------------------------------------------- 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" -------------------------------------------------------------------------------- /20-29/problem20.c: -------------------------------------------------------------------------------- 1 | /* 2 | * Copyright (c) 2009, eagletmt 3 | * Released under the MIT License 4 | */ 5 | 6 | #include 7 | #include 8 | #include 9 | 10 | int main(void) 11 | { 12 | mpz_t n; 13 | char *str; 14 | int i; 15 | int sum = 0; 16 | 17 | mpz_init(n); 18 | mpz_fac_ui(n, 100); 19 | str = mpz_get_str(NULL, 10, n); 20 | for (i = 0; str[i]; i++) { 21 | sum += str[i]-'0'; 22 | } 23 | printf("%d\n", sum); 24 | 25 | free(str); 26 | mpz_clear(n); 27 | 28 | return 0; 29 | } 30 | 31 | -------------------------------------------------------------------------------- /20-29/problem21.c: -------------------------------------------------------------------------------- 1 | /* 2 | * Copyright (c) 2009, eagletmt 3 | * Released under the MIT License 4 | */ 5 | 6 | #include 7 | 8 | static int divisors_sum(int n); 9 | 10 | int main(void) 11 | { 12 | int i, d, sum = 0; 13 | 14 | for (i = 2; i < 10000; i++) { 15 | d = divisors_sum(i); 16 | if (i < d && i == divisors_sum(d)) { 17 | sum += i + d; 18 | } 19 | } 20 | printf("%d\n", sum); 21 | 22 | return 0; 23 | } 24 | 25 | int divisors_sum(int n) 26 | { 27 | int sum= 1; 28 | int i, k = n; 29 | 30 | for (i = 2; i <= k; i++) { 31 | int p = 1; 32 | while (k % i == 0) { 33 | p *= i; 34 | k /= i; 35 | } 36 | sum *= (p*i - 1)/(i-1); 37 | } 38 | return sum - n; 39 | } 40 | 41 | -------------------------------------------------------------------------------- /20-29/problem22.c: -------------------------------------------------------------------------------- 1 | /* 2 | * Copyright (c) 2009, eagletmt 3 | * Released under the MIT License 4 | */ 5 | 6 | #include 7 | #include 8 | #include 9 | #include 10 | 11 | static int compare(const void *x, const void *y); 12 | 13 | int main(void) 14 | { 15 | int count = 0; 16 | FILE *fp; 17 | char path[] = "names.txt"; 18 | char **names; 19 | int i; 20 | int sum = 0; 21 | 22 | fp = fopen(path, "r"); 23 | if (!fp) { 24 | perror(path); 25 | return 1; 26 | } 27 | 28 | /* parse names.txt */ 29 | names = malloc(8192 * sizeof *names); 30 | names[count] = malloc(16); 31 | while (fscanf(fp, "\"%[^\"]\",", names[count]) != EOF) { 32 | names[++count] = malloc(16); 33 | } 34 | free(names[count]); 35 | fclose(fp); 36 | 37 | qsort(names, count, sizeof *names, compare); 38 | 39 | for (i = 0; i < count; i++) { 40 | int j, s = 0; 41 | for (j = 0; names[i][j] != 0; j++) { 42 | s += names[i][j]-'A'+1; 43 | } 44 | sum += s * (i+1); 45 | 46 | free(names[i]); 47 | } 48 | free(names); 49 | 50 | printf("%d\n", sum); 51 | 52 | return 0; 53 | } 54 | 55 | int compare(const void *x, const void *y) 56 | { 57 | return strcmp(*(char * const *)x, *(char * const *)y); 58 | } 59 | 60 | -------------------------------------------------------------------------------- /20-29/problem23.c: -------------------------------------------------------------------------------- 1 | /* 2 | * Copyright (c) 2009, eagletmt 3 | * Released under the MIT License 4 | */ 5 | 6 | #include 7 | #include 8 | 9 | static int is_abundant(int n); 10 | 11 | int main(void) 12 | { 13 | int i, j; 14 | const int upper_limit = 28123; 15 | int *abundants, abundants_count = 0; 16 | char *expressed; 17 | int sum = 0; 18 | 19 | for (i = 1; i < upper_limit; i++) { 20 | if (is_abundant(i)) { 21 | abundants_count++; 22 | } 23 | } 24 | 25 | abundants = malloc(abundants_count * sizeof *abundants); 26 | j = 0; 27 | for (i = 1; i < upper_limit; i++) { 28 | if (is_abundant(i)) { 29 | abundants[j++] = i; 30 | } 31 | } 32 | 33 | expressed = calloc(upper_limit, sizeof *expressed); 34 | for (i = 0; i < abundants_count; i++) { 35 | for (j = i; j < abundants_count; j++) { 36 | int k = abundants[i] + abundants[j]; 37 | if (k >= upper_limit) { 38 | break; 39 | } 40 | expressed[k-1] = 1; 41 | } 42 | } 43 | 44 | for (i = 1; i < upper_limit; i++) { 45 | if (!expressed[i-1]) { 46 | sum += i; 47 | } 48 | } 49 | printf("%d\n", sum); 50 | 51 | free(abundants); 52 | free(expressed); 53 | 54 | return 0; 55 | } 56 | 57 | int is_abundant(int n) 58 | { 59 | int sum = 1; 60 | int i, k = n; 61 | for (i = 2; i <= k; i++) { 62 | int p = 1; 63 | while (k % i == 0) { 64 | p *= i; 65 | k /= i; 66 | } 67 | sum *= (p*i - 1)/(i-1); 68 | } 69 | return 2*n < sum; 70 | } 71 | 72 | -------------------------------------------------------------------------------- /20-29/problem24.cc: -------------------------------------------------------------------------------- 1 | /* 2 | * Copyright (c) 2009, eagletmt 3 | * Released under the MIT License 4 | */ 5 | 6 | #include 7 | #include 8 | 9 | #define N 1000000 10 | 11 | int main(void) 12 | { 13 | using namespace std; 14 | 15 | int a[] = {0, 1, 2, 3, 4, 5, 6, 7, 8, 9}; 16 | int i; 17 | 18 | for (i = 0; i <= N; i++) { 19 | next_permutation(a, a + sizeof a/sizeof *a); 20 | } 21 | for (i = 0; i < 10; i++) { 22 | cout << a[i]; 23 | } 24 | cout << endl; 25 | 26 | return 0; 27 | } 28 | 29 | -------------------------------------------------------------------------------- /20-29/problem25.c: -------------------------------------------------------------------------------- 1 | /* 2 | * Copyright (c) 2009, eagletmt 3 | * Released under the MIT License 4 | */ 5 | 6 | #include 7 | #include 8 | #include 9 | #include 10 | 11 | int main(void) 12 | { 13 | mpz_t n; 14 | int i = 1; 15 | 16 | mpz_init(n); 17 | 18 | for (i = 1;; i++) { 19 | char *str; 20 | size_t len; 21 | 22 | mpz_fib_ui(n, i); 23 | str = mpz_get_str(NULL, 10, n); 24 | len = strlen(str); 25 | free(str); 26 | if (len == 1000) { 27 | printf("%d\n", i); 28 | break; 29 | } 30 | } 31 | 32 | mpz_clear(n); 33 | 34 | return 0; 35 | } 36 | 37 | -------------------------------------------------------------------------------- /20-29/problem26.c: -------------------------------------------------------------------------------- 1 | /* 2 | * Copyright (c) 2009, eagletmt 3 | * Released under the MIT License 4 | */ 5 | 6 | #include 7 | #include 8 | 9 | #define M 1000 10 | 11 | int main(void) 12 | { 13 | mpz_t p, r; 14 | unsigned maxlen = 0, imax = 0; 15 | unsigned i; 16 | 17 | mpz_init(p); mpz_init(r); 18 | 19 | for (i = 2; i < M; i++) { 20 | unsigned len = 1; 21 | 22 | if (i % 2 == 0 || i % 5 == 0) { 23 | continue; 24 | } 25 | 26 | mpz_set_ui(p, 10); 27 | while (mpz_mod_ui(r, p, i), mpz_cmp_ui(r, 1) != 0) { 28 | len++; 29 | mpz_mul_ui(p, p, 10); 30 | } 31 | if (len > maxlen) { 32 | maxlen = len; 33 | imax = i; 34 | } 35 | } 36 | printf("%u\n", imax); 37 | 38 | mpz_clear(p); 39 | mpz_clear(r); 40 | 41 | return 0; 42 | } 43 | 44 | -------------------------------------------------------------------------------- /20-29/problem27.c: -------------------------------------------------------------------------------- 1 | /* 2 | * Copyright (c) 2009, eagletmt 3 | * Released under the MIT License 4 | */ 5 | 6 | #include 7 | #include 8 | 9 | static int is_prime(int n); 10 | 11 | int main(void) 12 | { 13 | int a, b, n; 14 | int nmax = 0, amax = 0, bmax = 0; 15 | 16 | for (a = -999; a < 1000; a++) { 17 | for (b = -999; b < 1000; b++) { 18 | for (n = 0; is_prime(n*n + a*n + b); n++); 19 | if (n > nmax) { 20 | nmax = n; 21 | amax = a; 22 | bmax = b; 23 | } 24 | } 25 | } 26 | printf("%d\n", amax * bmax); 27 | 28 | return 0; 29 | } 30 | 31 | int is_prime(int n) 32 | { 33 | int i; 34 | 35 | if (n <= 1) { 36 | return 0; 37 | } 38 | if (n == 2) { 39 | return 1; 40 | } 41 | 42 | for (i = 2; i < sqrt((double)n); i++) { 43 | if (n % i == 0) { 44 | return 0; 45 | } 46 | } 47 | return 1; 48 | } 49 | 50 | -------------------------------------------------------------------------------- /20-29/problem28.c: -------------------------------------------------------------------------------- 1 | /* 2 | * Copyright (c) 2009, eagletmt 3 | * Released under the MIT License 4 | */ 5 | 6 | #include 7 | 8 | #define N 1001 9 | 10 | int main(void) 11 | { 12 | int sum = 1, i; 13 | for (i = 3; i <= N; i += 2) { 14 | sum += 2*(2*i*i - 3*i + 3); 15 | } 16 | printf("%d\n", sum); 17 | return 0; 18 | } 19 | 20 | -------------------------------------------------------------------------------- /20-29/problem29.c: -------------------------------------------------------------------------------- 1 | /* 2 | * Copyright (c) 2009, eagletmt 3 | * Released under the MIT License 4 | */ 5 | 6 | #include 7 | #include 8 | #include 9 | 10 | #define N 100 11 | 12 | static int compare(const void *a, const void *b); 13 | 14 | int main(void) 15 | { 16 | int a, b; 17 | int i = 0; 18 | int count = 0; 19 | mpz_t *nums; 20 | mpz_t t; 21 | 22 | mpz_init(t); 23 | 24 | nums = malloc((N-1)*(N-1) * sizeof *nums); 25 | for (a = 2; a <= N; a++) { 26 | mpz_set_ui(t, a); 27 | for (b = 2; b <= N; b++) { 28 | mpz_mul_ui(t, t, a); 29 | mpz_init(nums[i]); 30 | mpz_set(nums[i], t); 31 | i++; 32 | } 33 | } 34 | 35 | qsort(nums, (N-1)*(N-1), sizeof *nums, compare); 36 | 37 | mpz_set_ui(t, 0); 38 | for (i = 0; i < (N-1)*(N-1); i++) { 39 | if (mpz_cmp(t, nums[i]) != 0) { 40 | count++; 41 | } 42 | mpz_set(t, nums[i]); 43 | mpz_clear(nums[i]); 44 | } 45 | printf("%d\n", count); 46 | 47 | free(nums); 48 | mpz_clear(t); 49 | 50 | return 0; 51 | } 52 | 53 | int compare(const void *a, const void *b) 54 | { 55 | return mpz_cmp(*(const mpz_t *)a, *(mpz_t const *)b); 56 | } 57 | 58 | -------------------------------------------------------------------------------- /30-39/problem30.c: -------------------------------------------------------------------------------- 1 | /* 2 | * Copyright (c) 2009, eagletmt 3 | * Released under the MIT License 4 | */ 5 | 6 | #include 7 | #include 8 | 9 | #define M 1000000 10 | #define E 5 11 | 12 | int main(void) 13 | { 14 | char buf[16]; 15 | int i; 16 | int ttl = 0; 17 | for (i = 10; i < M; i++) { 18 | int sum = 0, j; 19 | 20 | snprintf(buf, sizeof buf, "%d", i); 21 | for (j = 0; buf[j]; j++) { 22 | sum += pow(buf[j]-'0', E); 23 | } 24 | if (i == sum) { 25 | ttl += i; 26 | } 27 | } 28 | printf("%d\n", ttl); 29 | return 0; 30 | } 31 | 32 | -------------------------------------------------------------------------------- /30-39/problem31.c: -------------------------------------------------------------------------------- 1 | /* 2 | * Copyright (c) 2009, eagletmt 3 | * Released under the MIT License 4 | */ 5 | 6 | #include 7 | 8 | int main(void) 9 | { 10 | int z = 0; 11 | int n = 200; 12 | 13 | int a, b, c, d, e, f, g; 14 | for (a = 0; a <= n; a += 200) 15 | for (b = 0; b <= n; b += 100) 16 | for (c = 0; c <= n; c += 50) 17 | for (d = 0; d <= n; d += 20) 18 | for (e = 0; e <= n; e += 10) 19 | for (f = 0; f <= n; f += 5) 20 | for (g = 0; g <= n; g += 2) 21 | if (a+b+c+d+e+f+g <= 200) 22 | z++; 23 | printf("%d\n", z); 24 | 25 | return 0; 26 | } 27 | 28 | -------------------------------------------------------------------------------- /30-39/problem32.c: -------------------------------------------------------------------------------- 1 | /* 2 | * Copyright (c) 2009, eagletmt 3 | * Released under the MIT License 4 | */ 5 | 6 | #include 7 | #include 8 | #include 9 | #include 10 | 11 | static int compare(const void *a, const void *b); 12 | static int is_pandigital(char *buf); 13 | #define DIGITS(x) (lround(floor(log10((double)x)))) 14 | 15 | int main(void) 16 | { 17 | int product, multiplier, multiplicand, remaindar; 18 | int sum = 0; 19 | char buf[10]; 20 | 21 | for (product = 1111; product < 100000; product++) { 22 | for (multiplicand = 2; multiplicand*multiplicand < product; multiplicand++) { 23 | remaindar = product % multiplicand; 24 | if (remaindar != 0) { 25 | continue; 26 | } 27 | multiplier = product / multiplicand; 28 | if (DIGITS(multiplicand) + DIGITS(multiplier) + DIGITS(product) != 6) { 29 | continue; 30 | } 31 | 32 | snprintf(buf, sizeof buf, "%d%d%d", multiplicand, multiplier, product); 33 | if (is_pandigital(buf)) { 34 | sum += product; 35 | break; 36 | } 37 | } 38 | } 39 | printf("%d\n", sum); 40 | 41 | return 0; 42 | } 43 | 44 | static int compare(const void *a, const void *b) 45 | { 46 | return *(const char *)a - *(const char *)b; 47 | } 48 | 49 | static int is_pandigital(char *buf) 50 | { 51 | qsort(buf, 9, 1, compare); 52 | return memcmp(buf, "123456789", 9) == 0; 53 | } 54 | 55 | -------------------------------------------------------------------------------- /30-39/problem33.c: -------------------------------------------------------------------------------- 1 | /* 2 | * Copyright (c) 2009, eagletmt 3 | * Released under the MIT License 4 | */ 5 | 6 | #include 7 | #include 8 | 9 | static unsigned gcd(unsigned a, unsigned b); 10 | static int cancel(unsigned n1, unsigned d1, unsigned *n2, unsigned *d2); 11 | 12 | int main(void) 13 | { 14 | unsigned ans_n = 1, ans_d = 1; 15 | unsigned i; 16 | for (i = 11; i < 100; i++) { 17 | unsigned j; 18 | 19 | if (i % 10 == 0) { 20 | continue; 21 | } 22 | 23 | for (j = 11; j < i; j++) { 24 | unsigned g, n, d; 25 | unsigned n2, d2; 26 | 27 | if (j % 10 == 0) { 28 | continue; 29 | } 30 | 31 | if ((g = gcd(i, j)) == 1) { 32 | continue; 33 | } 34 | /* cancel numerically */ 35 | n = j/g; 36 | d = i/g; 37 | 38 | /* cancel symbolically */ 39 | if (cancel(j, i, &n2, &d2)) { 40 | unsigned g2 = gcd(n2, d2); 41 | n2 /= g2; d2 /= g2; 42 | if (n == n2 && d == d2) { 43 | ans_n *= n; 44 | ans_d *= d; 45 | } 46 | } 47 | } 48 | } 49 | printf("%u\n", ans_d / gcd(ans_n, ans_d)); 50 | return 0; 51 | } 52 | 53 | unsigned gcd(unsigned a, unsigned b) 54 | { 55 | unsigned r; 56 | while ((r = a % b) != 0) { 57 | a = b; b = r; 58 | } 59 | return b; 60 | } 61 | 62 | int cancel(unsigned n1, unsigned d1, unsigned *n2, unsigned *d2) 63 | { 64 | if (n1%10 == d1%10) { 65 | /* e.g. 24 and 34 */ 66 | *n2 = n1/10; 67 | *d2 = d1/10; 68 | return 1; 69 | } 70 | else if (n1%10 == d1/10) { 71 | /* e.g. 24 and 41 */ 72 | *n2 = n1/10; 73 | *d2 = d1%10; 74 | return 1; 75 | } 76 | else if (n1/10 == d1%10) { 77 | /* e.g. 24 and 32 */ 78 | *n2 = n1%10; 79 | *d2 = d1/10; 80 | return 1; 81 | } 82 | else if (n1/10 == d1/10) { 83 | /* e.g. 24 and 21 */ 84 | *n2 = n1%10; 85 | *d2 = d1%10; 86 | return 1; 87 | } 88 | else { 89 | *n2 = n1; 90 | *d2 = d1; 91 | return 0; 92 | } 93 | } 94 | 95 | -------------------------------------------------------------------------------- /30-39/problem34.c: -------------------------------------------------------------------------------- 1 | /* 2 | * Copyright (c) 2009, eagletmt 3 | * Released under the MIT License 4 | */ 5 | 6 | #include 7 | 8 | unsigned fact(unsigned n); 9 | 10 | int main(void) 11 | { 12 | unsigned i, sum = 0; 13 | char buf[16]; 14 | 15 | for (i = 3; i < 100000; i++) { 16 | unsigned j, s = 0; 17 | 18 | snprintf(buf, sizeof buf, "%u", i); 19 | for (j = 0; buf[j] != 0; j++) { 20 | s += fact(buf[j]-'0'); 21 | } 22 | if (i == s) { 23 | sum += s; 24 | } 25 | } 26 | printf("%u\n", sum); 27 | 28 | return 0; 29 | } 30 | 31 | unsigned fact(unsigned n) 32 | { 33 | unsigned f = 1; 34 | while (n != 0) { 35 | f *= n--; 36 | } 37 | return f; 38 | } 39 | 40 | -------------------------------------------------------------------------------- /30-39/problem35.c: -------------------------------------------------------------------------------- 1 | /* 2 | * Copyright (c) 2009, eagletmt 3 | * Released under the MIT License 4 | */ 5 | 6 | #include 7 | #include 8 | 9 | #define N 1000000 10 | 11 | static int is_prime(unsigned n); 12 | 13 | int main(void) 14 | { 15 | unsigned i, count = 0; 16 | 17 | for (i = 2; i < N; i++) { 18 | unsigned digits; 19 | unsigned k; 20 | unsigned j; 21 | 22 | if (!is_prime(i)) { 23 | continue; 24 | } 25 | digits = log10(i); 26 | k = i; 27 | for (j = 0; j < digits; j++) { 28 | unsigned l = pow(10, digits); 29 | unsigned t = k % l; 30 | k /= l; 31 | k += t*10; 32 | if (!is_prime(k)) { 33 | goto NEXT; 34 | } 35 | } 36 | count++; 37 | NEXT: 38 | ; 39 | } 40 | printf("%u\n", count); 41 | 42 | return 0; 43 | } 44 | 45 | int is_prime(unsigned n) 46 | { 47 | if (n <= 1) { 48 | return 0; 49 | } 50 | else if (n == 2) { 51 | return 1; 52 | } 53 | else { 54 | unsigned i; 55 | for (i = 2; i*i <= n; i++) { 56 | if (n % i == 0) { 57 | return 0; 58 | } 59 | } 60 | return 1; 61 | } 62 | } 63 | 64 | -------------------------------------------------------------------------------- /30-39/problem36.c: -------------------------------------------------------------------------------- 1 | /* 2 | * Copyright (c) 2009, eagletmt 3 | * Released under the MIT License 4 | */ 5 | 6 | #include 7 | 8 | #define N 1000000 9 | 10 | static int palindromic_base(int n, int base); 11 | 12 | int main(void) 13 | { 14 | int i; 15 | int sum = 0; 16 | 17 | for (i = 1; i < N; i++) { 18 | if (palindromic_base(i, 10) && palindromic_base(i, 2)) { 19 | sum += i; 20 | } 21 | } 22 | printf("%d\n", sum); 23 | 24 | return 0; 25 | } 26 | 27 | int palindromic_base(int n, int base) 28 | { 29 | int reversed = 0; 30 | const int orig = n; 31 | 32 | while (n) { 33 | reversed = base*reversed + n%base; 34 | n /= base; 35 | } 36 | return orig == reversed; 37 | } 38 | 39 | -------------------------------------------------------------------------------- /30-39/problem37.c: -------------------------------------------------------------------------------- 1 | /* 2 | * Copyright (c) 2009, eagletmt 3 | * Released under the MIT License 4 | */ 5 | 6 | #include 7 | #include 8 | 9 | static int is_prime(unsigned n); 10 | 11 | int main(void) 12 | { 13 | unsigned i; 14 | unsigned count = 0, sum = 0; 15 | 16 | for (i = 10; count < 11; i++) { 17 | /* truncate from right to left */ 18 | unsigned k, d; 19 | 20 | k = i; 21 | while (k != 0) { 22 | if (!is_prime(k)) { 23 | goto NEXT; 24 | } 25 | k /= 10; 26 | } 27 | 28 | /* truncate from left to right */ 29 | k = i; 30 | d = log10(k); 31 | d = pow(10, d); 32 | while (d != 1) { 33 | if (!is_prime(k % d)) { 34 | goto NEXT; 35 | } 36 | d /= 10; 37 | } 38 | sum += i; 39 | count++; 40 | 41 | NEXT: 42 | ; 43 | } 44 | printf("%u\n", sum); 45 | 46 | return 0; 47 | } 48 | 49 | int is_prime(unsigned n) 50 | { 51 | if (n <= 1) { 52 | return 0; 53 | } 54 | else if (n == 2) { 55 | return 1; 56 | } 57 | else { 58 | unsigned i; 59 | for (i = 2; i*i <= n; i++) { 60 | if (n % i == 0) { 61 | return 0; 62 | } 63 | } 64 | return 1; 65 | } 66 | } 67 | 68 | -------------------------------------------------------------------------------- /30-39/problem38.c: -------------------------------------------------------------------------------- 1 | /* 2 | * Copyright (c) 2009, eagletmt 3 | * Released under the MIT License 4 | */ 5 | 6 | #include 7 | #include 8 | #include 9 | 10 | #define N 10000 11 | 12 | static int is_pandigital(const char *s); 13 | static int compare(const void *a, const void *b); 14 | 15 | int main(void) 16 | { 17 | unsigned max = 0; 18 | unsigned i; 19 | 20 | for (i = 1; i < N; i++) { 21 | char s[10] = {0}; 22 | unsigned j; 23 | 24 | snprintf(s, sizeof s, "%u", i); 25 | for (j = 2; ; j++) { 26 | char t[10] = {0}; 27 | 28 | snprintf(t, sizeof t, "%u", i*j); 29 | if (strlen(s) + strlen(t) > 9) { 30 | break; 31 | } 32 | strncat(s, t, sizeof s - strlen(s)); 33 | } 34 | if (is_pandigital(s)) { 35 | unsigned l = strtoul(s, NULL, 10); 36 | if (l > max) { 37 | max = l; 38 | } 39 | } 40 | } 41 | printf("%u\n", max); 42 | 43 | return 0; 44 | } 45 | 46 | int compare(const void *a, const void *b) 47 | { 48 | return *(const char *)a - *(const char *)b; 49 | } 50 | 51 | int is_pandigital(const char *s) 52 | { 53 | size_t l; 54 | char t[10]; 55 | size_t i; 56 | 57 | l = strlen(s); 58 | if (l != 9) { 59 | return 0; 60 | } 61 | strncpy(t, s, sizeof t); 62 | qsort(t, l, sizeof *t, compare); 63 | for (i = 0; i < l; i++) { 64 | if (t[i] != i+'1') { 65 | return 0; 66 | } 67 | } 68 | return 1; 69 | } 70 | 71 | -------------------------------------------------------------------------------- /30-39/problem39.c: -------------------------------------------------------------------------------- 1 | /* 2 | * Copyright (c) 2009, eagletmt 3 | * Released under the MIT License 4 | */ 5 | 6 | #include 7 | 8 | int main(void) 9 | { 10 | unsigned a, b, c, p; 11 | unsigned cnt, max = 0, maxp = 0; 12 | 13 | for (p = 1; p <= 1000; p++) { 14 | cnt = 0; 15 | for (a = 1; a < p/2; a++) { 16 | for (b = a; b < p/2; b++) { 17 | c = p - a - b; 18 | if (a*a + b*b == c*c) { 19 | cnt++; 20 | } 21 | } 22 | } 23 | if (cnt > max) { 24 | max = cnt; 25 | maxp = p; 26 | } 27 | } 28 | printf("%u\n", maxp); 29 | 30 | return 0; 31 | } 32 | 33 | -------------------------------------------------------------------------------- /40-49/problem40.c: -------------------------------------------------------------------------------- 1 | /* 2 | * Copyright (c) 2009, eagletmt 3 | * Released under the MIT License 4 | */ 5 | 6 | #include 7 | #include 8 | 9 | int main(void) 10 | { 11 | int nth = 1; 12 | int i; 13 | int d[7], l; 14 | int p = 1; 15 | 16 | for (i = 1, l = 0; l < 7; i++) { 17 | int digits = log10(i)+1; 18 | int j; 19 | for (j = 0; j < digits; j++, nth++) { 20 | if (nth == pow(10, l)) { 21 | d[l++] = (i / (int)pow(10, digits-j-1)) % 10; /* retrieve i's j-th digit */ 22 | } 23 | } 24 | } 25 | 26 | for (i = 0; i < l; i++) { 27 | p *= d[i]; 28 | } 29 | printf("%d\n", p); 30 | 31 | return 0; 32 | } 33 | 34 | -------------------------------------------------------------------------------- /40-49/problem41.cc: -------------------------------------------------------------------------------- 1 | /* 2 | * Copyright (c) 2009, eagletmt 3 | * Released under the MIT License 4 | */ 5 | 6 | #include 7 | #include 8 | #include 9 | 10 | template 11 | struct func { 12 | T operator()(T a, T b) const 13 | { 14 | return 10*a + b; 15 | } 16 | }; 17 | 18 | static bool is_prime(unsigned n); 19 | 20 | int main() 21 | { 22 | using namespace std; 23 | 24 | int a[] = {9,8,7,6,5,4,3,2,1}; 25 | static const size_t N = 9; 26 | 27 | for (unsigned i = 0; i < N; i++) { 28 | do { 29 | int n = accumulate(a+i, a+N, 0, func()); 30 | if (is_prime(n)) { 31 | cout << n << endl; 32 | goto FINISH; 33 | } 34 | } while (prev_permutation(a+i, a+N)); 35 | } 36 | 37 | FINISH: 38 | return 0; 39 | } 40 | 41 | bool is_prime(unsigned n) 42 | { 43 | if (n == 1) { 44 | return false; 45 | } 46 | else if (n % 2 == 0) { 47 | return n == 2; 48 | } 49 | else { 50 | for (unsigned d = 3; d*d < n; d += 2) { 51 | if (n % d == 0) { 52 | return false; 53 | } 54 | } 55 | return true; 56 | } 57 | } 58 | 59 | -------------------------------------------------------------------------------- /40-49/problem42.c: -------------------------------------------------------------------------------- 1 | /* 2 | * Copyright (c) 2009, eagletmt 3 | * Released under the MIT License 4 | */ 5 | 6 | #include 7 | #include 8 | 9 | static int is_triangle(int c); 10 | 11 | int main(void) 12 | { 13 | FILE *fp; 14 | int cnt = 0; 15 | char buf[32]; 16 | 17 | fp = fopen("words.txt", "r"); 18 | if (!fp) { 19 | perror("words.txt"); 20 | return 1; 21 | } 22 | 23 | while (fscanf(fp, "\"%[^\"]\",", buf) != EOF) { 24 | int i, sum = 0; 25 | for (i = 0; buf[i] != '\0'; i++) { 26 | sum += buf[i]-'A'+1; 27 | } 28 | cnt += is_triangle(sum); 29 | } 30 | fclose(fp); 31 | 32 | printf("%d\n", cnt); 33 | 34 | return 0; 35 | } 36 | 37 | int is_triangle(int c) 38 | { 39 | /* 40 | * if c is a triangle number, c = 1/2*n*(n+1) thus n = (-1 + sqrt(1+8*c))/2 . 41 | * so c is a triangle number if 1+8*c is a square number and sqrt(1+8*c) is odd. 42 | */ 43 | int sq = sqrt(1+8*c); 44 | return (sq*sq == 1+8*c && (sq & 1) == 1); 45 | } 46 | 47 | -------------------------------------------------------------------------------- /40-49/problem43.cc: -------------------------------------------------------------------------------- 1 | /* 2 | * Copyright (c) 2009, eagletmt 3 | * Released under the MIT License 4 | */ 5 | 6 | #include 7 | #include 8 | 9 | int main(void) 10 | { 11 | using namespace std; 12 | 13 | unsigned d[] = {0,1,2,3,4,5,6,7,8,9}; 14 | static const unsigned N = sizeof d/sizeof *d; 15 | unsigned long long sum = 0; 16 | 17 | do { 18 | if ( (d[1]*100 + d[2]*10 + d[3]) % 2 == 0 19 | && (d[2]*100 + d[3]*10 + d[4]) % 3 == 0 20 | && (d[3]*100 + d[4]*10 + d[5]) % 5 == 0 21 | && (d[4]*100 + d[5]*10 + d[6]) % 7 == 0 22 | && (d[5]*100 + d[6]*10 + d[7]) % 11 == 0 23 | && (d[6]*100 + d[7]*10 + d[8]) % 13 == 0 24 | && (d[7]*100 + d[8]*10 + d[9]) % 17 == 0) { 25 | unsigned long long p = 1; 26 | for (unsigned i = 0; i < N; i++) { 27 | sum += d[N-i-1]*p; 28 | p *= 10; 29 | } 30 | } 31 | } while (next_permutation(d, d+N)); 32 | 33 | cout << sum << endl; 34 | 35 | return 0; 36 | } 37 | 38 | -------------------------------------------------------------------------------- /40-49/problem44.c: -------------------------------------------------------------------------------- 1 | /* 2 | * Copyright (c) 2009, eagletmt 3 | * Released under the MIT License 4 | */ 5 | 6 | #include 7 | #include 8 | #include 9 | 10 | #define N 10000 11 | 12 | static unsigned pentagonal(unsigned n); 13 | static int is_pentagonal(unsigned n); 14 | 15 | /* this program may take a few seconds */ 16 | int main(void) 17 | { 18 | unsigned i, j; 19 | unsigned min = UINT_MAX; 20 | for (i = 1; i < N; i++) { 21 | for (j = i; j < N; j++) { 22 | unsigned k = pentagonal(i); 23 | unsigned l = pentagonal(j); 24 | if (is_pentagonal(k+l) && is_pentagonal(l-k)) { 25 | if (l-k < min) { 26 | min = l-k; 27 | } 28 | } 29 | } 30 | } 31 | printf("%u\n", min); 32 | 33 | return 0; 34 | } 35 | 36 | unsigned pentagonal(unsigned n) 37 | { 38 | return n*(3*n-1)/2; 39 | } 40 | 41 | int is_pentagonal(unsigned n) 42 | { 43 | unsigned sq = sqrt(1+24*n); 44 | return sq*sq == 1+24*n && (1+sq) % 6 == 0; 45 | } 46 | 47 | -------------------------------------------------------------------------------- /40-49/problem45.c: -------------------------------------------------------------------------------- 1 | /* 2 | * Copyright (c) 2009, eagletmt 3 | * Released under the MIT License 4 | */ 5 | 6 | #include 7 | #include 8 | 9 | int is_triangle(unsigned long long n); 10 | int is_pentagonal(unsigned long long n); 11 | unsigned long long hexagonal(unsigned long long n); 12 | 13 | int main(void) 14 | { 15 | unsigned long long h, i; 16 | for (i = 144; !(is_pentagonal(h = hexagonal(i)) && is_triangle(h)); i++) 17 | ; 18 | printf("%llu\n", h); 19 | return 0; 20 | } 21 | 22 | int is_triangle(unsigned long long n) 23 | { 24 | unsigned long long sq = sqrt(1+8*n); 25 | return sq*sq == 1+8*n && (sq-1) % 2 == 0; 26 | } 27 | 28 | int is_pentagonal(unsigned long long n) 29 | { 30 | unsigned long long sq = sqrt(1+24*n); 31 | return sq*sq == 1+24*n && (1+sq) % 6 == 0; 32 | } 33 | 34 | unsigned long long hexagonal(unsigned long long n) 35 | { 36 | return n*(2*n-1); 37 | } 38 | 39 | -------------------------------------------------------------------------------- /40-49/problem46.c: -------------------------------------------------------------------------------- 1 | /* 2 | * Copyright (c) 2009, eagletmt 3 | * Released under the MIT License 4 | */ 5 | 6 | #include 7 | #include 8 | #include 9 | 10 | #define N 10000 11 | 12 | static int is_square(unsigned n); 13 | static char *prime_sieve(unsigned n); 14 | 15 | int main(void) 16 | { 17 | char *sieve = prime_sieve(N); 18 | unsigned *primes = malloc(sizeof(unsigned) * N); 19 | unsigned i, j = 0; 20 | 21 | for (i = 0; i < N; i++) { 22 | if (!sieve[i]) { 23 | primes[j++] = i; 24 | } 25 | } 26 | primes[j] = 0; 27 | 28 | for (i = 3; i < N; i += 2) { 29 | if (!sieve[i]) { 30 | /* skip if i is prime */ 31 | continue; 32 | } 33 | for (j = 0; primes[j]; j++) { 34 | unsigned s; 35 | 36 | if (primes[j] > i) { 37 | printf("%u\n", i); 38 | goto FINISH; 39 | } 40 | 41 | s = (i - primes[j])/2; 42 | if (is_square(s)) { 43 | break; 44 | } 45 | } 46 | } 47 | FINISH: 48 | free(sieve); 49 | free(primes); 50 | 51 | return 0; 52 | } 53 | 54 | char *prime_sieve(unsigned n) 55 | { 56 | char *sieve = calloc(n, sizeof *sieve); 57 | unsigned i; 58 | sieve[0] = sieve[1] = 1; 59 | for (i = 2; i < n; i++) { 60 | if (!sieve[i]) { 61 | unsigned j; 62 | for (j = i*2; j < n; j += i) { 63 | sieve[j] = 1; 64 | } 65 | } 66 | } 67 | return sieve; 68 | } 69 | 70 | int is_square(unsigned n) 71 | { 72 | unsigned sq = sqrt(n); 73 | return sq*sq == n; 74 | } 75 | 76 | -------------------------------------------------------------------------------- /40-49/problem47.c: -------------------------------------------------------------------------------- 1 | /* 2 | * Copyright (c) 2009, eagletmt 3 | * Released under the MIT License 4 | */ 5 | 6 | #include 7 | 8 | #define N 4 9 | #define M 1000000 10 | 11 | static int distinct_factor_count(unsigned n); 12 | 13 | /* this program may take sevaral seconds */ 14 | int main(void) 15 | { 16 | unsigned i, j = 0; 17 | for (i = 2; i < M && j < N; i++) { 18 | for (j = 0; j < N && distinct_factor_count(i+j) == 4; j++) 19 | ; 20 | } 21 | printf("%u\n", i-1); 22 | 23 | return 0; 24 | } 25 | 26 | int distinct_factor_count(unsigned n) 27 | { 28 | unsigned count = 0; 29 | unsigned i; 30 | for (i = 2; i <= n; i++) { 31 | if (n % i == 0) { 32 | count++; 33 | n /= i; 34 | while (n % i == 0) { 35 | n /= i; 36 | } 37 | } 38 | } 39 | return count; 40 | } 41 | 42 | -------------------------------------------------------------------------------- /40-49/problem48.c: -------------------------------------------------------------------------------- 1 | /* 2 | * Copyright (c) 2009, eagletmt 3 | * Released under the MIT License 4 | */ 5 | 6 | #include 7 | 8 | #define N 1000 9 | #define Q 10000000000ULL 10 | 11 | int main(void) 12 | { 13 | unsigned long long rem = 0; 14 | unsigned i; 15 | for (i = 1; i < N; i++) { 16 | unsigned long long r = 1; 17 | unsigned j; 18 | for (j = 0; j < i; j++) { 19 | r = (r * i) % Q; 20 | } 21 | rem = (rem + r) % Q; 22 | } 23 | printf("%llu\n", rem); 24 | 25 | return 0; 26 | } 27 | 28 | -------------------------------------------------------------------------------- /40-49/problem49.cc: -------------------------------------------------------------------------------- 1 | /* 2 | * Copyright (c) 2009, eagletmt 3 | * Released under the MIT License 4 | */ 5 | 6 | #include 7 | #include 8 | #include 9 | #include 10 | 11 | template 12 | struct func { 13 | T operator()(T a, T b) const 14 | { 15 | return 10*a + b; 16 | } 17 | }; 18 | 19 | static bool is_prime(int n); 20 | 21 | int main() 22 | { 23 | using namespace std; 24 | 25 | bool seen[10000]; 26 | fill(seen, seen+10000, false); 27 | 28 | for (int i = 1000; i < 10000; i++) { 29 | /* int->vector e.g. 1234 -> [1,2,3,4] */ 30 | vector a(4); 31 | for (int j = 0, t = i; j < 4; j++, t /= 10) { 32 | a[3-j] = t % 10; 33 | } 34 | 35 | vector s; 36 | do { 37 | /* vector->int */ 38 | int n = accumulate(a.begin(), a.end(), 0, func()); 39 | 40 | if (!seen[n] && is_prime(n)) { 41 | s.push_back(n); 42 | seen[n] = true; 43 | } 44 | } while (next_permutation(a.begin(), a.end())); 45 | 46 | for (int j = 0; j < s.size(); j++) { 47 | for (int k = j+1; k < s.size(); k++) { 48 | for (int l = k+1; l < s.size(); l++) { 49 | if (s[j] != 1487 && s[l] - s[k] == s[k] - s[j]) { 50 | cout << s[j] << s[k] << s[l] << endl; 51 | } 52 | } 53 | } 54 | } 55 | } 56 | 57 | return 0; 58 | } 59 | 60 | bool is_prime(int n) 61 | { 62 | if (n < 2) { 63 | return false; 64 | } 65 | else if (n % 2 == 0) { 66 | return n == 2; 67 | } 68 | else { 69 | for (int d = 3; d*d <= n; d += 2) { 70 | if (n % d == 0) { 71 | return false; 72 | } 73 | } 74 | return true; 75 | } 76 | } 77 | 78 | -------------------------------------------------------------------------------- /40-49/words.txt: -------------------------------------------------------------------------------- 1 | "A","ABILITY","ABLE","ABOUT","ABOVE","ABSENCE","ABSOLUTELY","ACADEMIC","ACCEPT","ACCESS","ACCIDENT","ACCOMPANY","ACCORDING","ACCOUNT","ACHIEVE","ACHIEVEMENT","ACID","ACQUIRE","ACROSS","ACT","ACTION","ACTIVE","ACTIVITY","ACTUAL","ACTUALLY","ADD","ADDITION","ADDITIONAL","ADDRESS","ADMINISTRATION","ADMIT","ADOPT","ADULT","ADVANCE","ADVANTAGE","ADVICE","ADVISE","AFFAIR","AFFECT","AFFORD","AFRAID","AFTER","AFTERNOON","AFTERWARDS","AGAIN","AGAINST","AGE","AGENCY","AGENT","AGO","AGREE","AGREEMENT","AHEAD","AID","AIM","AIR","AIRCRAFT","ALL","ALLOW","ALMOST","ALONE","ALONG","ALREADY","ALRIGHT","ALSO","ALTERNATIVE","ALTHOUGH","ALWAYS","AMONG","AMONGST","AMOUNT","AN","ANALYSIS","ANCIENT","AND","ANIMAL","ANNOUNCE","ANNUAL","ANOTHER","ANSWER","ANY","ANYBODY","ANYONE","ANYTHING","ANYWAY","APART","APPARENT","APPARENTLY","APPEAL","APPEAR","APPEARANCE","APPLICATION","APPLY","APPOINT","APPOINTMENT","APPROACH","APPROPRIATE","APPROVE","AREA","ARGUE","ARGUMENT","ARISE","ARM","ARMY","AROUND","ARRANGE","ARRANGEMENT","ARRIVE","ART","ARTICLE","ARTIST","AS","ASK","ASPECT","ASSEMBLY","ASSESS","ASSESSMENT","ASSET","ASSOCIATE","ASSOCIATION","ASSUME","ASSUMPTION","AT","ATMOSPHERE","ATTACH","ATTACK","ATTEMPT","ATTEND","ATTENTION","ATTITUDE","ATTRACT","ATTRACTIVE","AUDIENCE","AUTHOR","AUTHORITY","AVAILABLE","AVERAGE","AVOID","AWARD","AWARE","AWAY","AYE","BABY","BACK","BACKGROUND","BAD","BAG","BALANCE","BALL","BAND","BANK","BAR","BASE","BASIC","BASIS","BATTLE","BE","BEAR","BEAT","BEAUTIFUL","BECAUSE","BECOME","BED","BEDROOM","BEFORE","BEGIN","BEGINNING","BEHAVIOUR","BEHIND","BELIEF","BELIEVE","BELONG","BELOW","BENEATH","BENEFIT","BESIDE","BEST","BETTER","BETWEEN","BEYOND","BIG","BILL","BIND","BIRD","BIRTH","BIT","BLACK","BLOCK","BLOOD","BLOODY","BLOW","BLUE","BOARD","BOAT","BODY","BONE","BOOK","BORDER","BOTH","BOTTLE","BOTTOM","BOX","BOY","BRAIN","BRANCH","BREAK","BREATH","BRIDGE","BRIEF","BRIGHT","BRING","BROAD","BROTHER","BUDGET","BUILD","BUILDING","BURN","BUS","BUSINESS","BUSY","BUT","BUY","BY","CABINET","CALL","CAMPAIGN","CAN","CANDIDATE","CAPABLE","CAPACITY","CAPITAL","CAR","CARD","CARE","CAREER","CAREFUL","CAREFULLY","CARRY","CASE","CASH","CAT","CATCH","CATEGORY","CAUSE","CELL","CENTRAL","CENTRE","CENTURY","CERTAIN","CERTAINLY","CHAIN","CHAIR","CHAIRMAN","CHALLENGE","CHANCE","CHANGE","CHANNEL","CHAPTER","CHARACTER","CHARACTERISTIC","CHARGE","CHEAP","CHECK","CHEMICAL","CHIEF","CHILD","CHOICE","CHOOSE","CHURCH","CIRCLE","CIRCUMSTANCE","CITIZEN","CITY","CIVIL","CLAIM","CLASS","CLEAN","CLEAR","CLEARLY","CLIENT","CLIMB","CLOSE","CLOSELY","CLOTHES","CLUB","COAL","CODE","COFFEE","COLD","COLLEAGUE","COLLECT","COLLECTION","COLLEGE","COLOUR","COMBINATION","COMBINE","COME","COMMENT","COMMERCIAL","COMMISSION","COMMIT","COMMITMENT","COMMITTEE","COMMON","COMMUNICATION","COMMUNITY","COMPANY","COMPARE","COMPARISON","COMPETITION","COMPLETE","COMPLETELY","COMPLEX","COMPONENT","COMPUTER","CONCENTRATE","CONCENTRATION","CONCEPT","CONCERN","CONCERNED","CONCLUDE","CONCLUSION","CONDITION","CONDUCT","CONFERENCE","CONFIDENCE","CONFIRM","CONFLICT","CONGRESS","CONNECT","CONNECTION","CONSEQUENCE","CONSERVATIVE","CONSIDER","CONSIDERABLE","CONSIDERATION","CONSIST","CONSTANT","CONSTRUCTION","CONSUMER","CONTACT","CONTAIN","CONTENT","CONTEXT","CONTINUE","CONTRACT","CONTRAST","CONTRIBUTE","CONTRIBUTION","CONTROL","CONVENTION","CONVERSATION","COPY","CORNER","CORPORATE","CORRECT","COS","COST","COULD","COUNCIL","COUNT","COUNTRY","COUNTY","COUPLE","COURSE","COURT","COVER","CREATE","CREATION","CREDIT","CRIME","CRIMINAL","CRISIS","CRITERION","CRITICAL","CRITICISM","CROSS","CROWD","CRY","CULTURAL","CULTURE","CUP","CURRENT","CURRENTLY","CURRICULUM","CUSTOMER","CUT","DAMAGE","DANGER","DANGEROUS","DARK","DATA","DATE","DAUGHTER","DAY","DEAD","DEAL","DEATH","DEBATE","DEBT","DECADE","DECIDE","DECISION","DECLARE","DEEP","DEFENCE","DEFENDANT","DEFINE","DEFINITION","DEGREE","DELIVER","DEMAND","DEMOCRATIC","DEMONSTRATE","DENY","DEPARTMENT","DEPEND","DEPUTY","DERIVE","DESCRIBE","DESCRIPTION","DESIGN","DESIRE","DESK","DESPITE","DESTROY","DETAIL","DETAILED","DETERMINE","DEVELOP","DEVELOPMENT","DEVICE","DIE","DIFFERENCE","DIFFERENT","DIFFICULT","DIFFICULTY","DINNER","DIRECT","DIRECTION","DIRECTLY","DIRECTOR","DISAPPEAR","DISCIPLINE","DISCOVER","DISCUSS","DISCUSSION","DISEASE","DISPLAY","DISTANCE","DISTINCTION","DISTRIBUTION","DISTRICT","DIVIDE","DIVISION","DO","DOCTOR","DOCUMENT","DOG","DOMESTIC","DOOR","DOUBLE","DOUBT","DOWN","DRAW","DRAWING","DREAM","DRESS","DRINK","DRIVE","DRIVER","DROP","DRUG","DRY","DUE","DURING","DUTY","EACH","EAR","EARLY","EARN","EARTH","EASILY","EAST","EASY","EAT","ECONOMIC","ECONOMY","EDGE","EDITOR","EDUCATION","EDUCATIONAL","EFFECT","EFFECTIVE","EFFECTIVELY","EFFORT","EGG","EITHER","ELDERLY","ELECTION","ELEMENT","ELSE","ELSEWHERE","EMERGE","EMPHASIS","EMPLOY","EMPLOYEE","EMPLOYER","EMPLOYMENT","EMPTY","ENABLE","ENCOURAGE","END","ENEMY","ENERGY","ENGINE","ENGINEERING","ENJOY","ENOUGH","ENSURE","ENTER","ENTERPRISE","ENTIRE","ENTIRELY","ENTITLE","ENTRY","ENVIRONMENT","ENVIRONMENTAL","EQUAL","EQUALLY","EQUIPMENT","ERROR","ESCAPE","ESPECIALLY","ESSENTIAL","ESTABLISH","ESTABLISHMENT","ESTATE","ESTIMATE","EVEN","EVENING","EVENT","EVENTUALLY","EVER","EVERY","EVERYBODY","EVERYONE","EVERYTHING","EVIDENCE","EXACTLY","EXAMINATION","EXAMINE","EXAMPLE","EXCELLENT","EXCEPT","EXCHANGE","EXECUTIVE","EXERCISE","EXHIBITION","EXIST","EXISTENCE","EXISTING","EXPECT","EXPECTATION","EXPENDITURE","EXPENSE","EXPENSIVE","EXPERIENCE","EXPERIMENT","EXPERT","EXPLAIN","EXPLANATION","EXPLORE","EXPRESS","EXPRESSION","EXTEND","EXTENT","EXTERNAL","EXTRA","EXTREMELY","EYE","FACE","FACILITY","FACT","FACTOR","FACTORY","FAIL","FAILURE","FAIR","FAIRLY","FAITH","FALL","FAMILIAR","FAMILY","FAMOUS","FAR","FARM","FARMER","FASHION","FAST","FATHER","FAVOUR","FEAR","FEATURE","FEE","FEEL","FEELING","FEMALE","FEW","FIELD","FIGHT","FIGURE","FILE","FILL","FILM","FINAL","FINALLY","FINANCE","FINANCIAL","FIND","FINDING","FINE","FINGER","FINISH","FIRE","FIRM","FIRST","FISH","FIT","FIX","FLAT","FLIGHT","FLOOR","FLOW","FLOWER","FLY","FOCUS","FOLLOW","FOLLOWING","FOOD","FOOT","FOOTBALL","FOR","FORCE","FOREIGN","FOREST","FORGET","FORM","FORMAL","FORMER","FORWARD","FOUNDATION","FREE","FREEDOM","FREQUENTLY","FRESH","FRIEND","FROM","FRONT","FRUIT","FUEL","FULL","FULLY","FUNCTION","FUND","FUNNY","FURTHER","FUTURE","GAIN","GAME","GARDEN","GAS","GATE","GATHER","GENERAL","GENERALLY","GENERATE","GENERATION","GENTLEMAN","GET","GIRL","GIVE","GLASS","GO","GOAL","GOD","GOLD","GOOD","GOVERNMENT","GRANT","GREAT","GREEN","GREY","GROUND","GROUP","GROW","GROWING","GROWTH","GUEST","GUIDE","GUN","HAIR","HALF","HALL","HAND","HANDLE","HANG","HAPPEN","HAPPY","HARD","HARDLY","HATE","HAVE","HE","HEAD","HEALTH","HEAR","HEART","HEAT","HEAVY","HELL","HELP","HENCE","HER","HERE","HERSELF","HIDE","HIGH","HIGHLY","HILL","HIM","HIMSELF","HIS","HISTORICAL","HISTORY","HIT","HOLD","HOLE","HOLIDAY","HOME","HOPE","HORSE","HOSPITAL","HOT","HOTEL","HOUR","HOUSE","HOUSEHOLD","HOUSING","HOW","HOWEVER","HUGE","HUMAN","HURT","HUSBAND","I","IDEA","IDENTIFY","IF","IGNORE","ILLUSTRATE","IMAGE","IMAGINE","IMMEDIATE","IMMEDIATELY","IMPACT","IMPLICATION","IMPLY","IMPORTANCE","IMPORTANT","IMPOSE","IMPOSSIBLE","IMPRESSION","IMPROVE","IMPROVEMENT","IN","INCIDENT","INCLUDE","INCLUDING","INCOME","INCREASE","INCREASED","INCREASINGLY","INDEED","INDEPENDENT","INDEX","INDICATE","INDIVIDUAL","INDUSTRIAL","INDUSTRY","INFLUENCE","INFORM","INFORMATION","INITIAL","INITIATIVE","INJURY","INSIDE","INSIST","INSTANCE","INSTEAD","INSTITUTE","INSTITUTION","INSTRUCTION","INSTRUMENT","INSURANCE","INTEND","INTENTION","INTEREST","INTERESTED","INTERESTING","INTERNAL","INTERNATIONAL","INTERPRETATION","INTERVIEW","INTO","INTRODUCE","INTRODUCTION","INVESTIGATE","INVESTIGATION","INVESTMENT","INVITE","INVOLVE","IRON","IS","ISLAND","ISSUE","IT","ITEM","ITS","ITSELF","JOB","JOIN","JOINT","JOURNEY","JUDGE","JUMP","JUST","JUSTICE","KEEP","KEY","KID","KILL","KIND","KING","KITCHEN","KNEE","KNOW","KNOWLEDGE","LABOUR","LACK","LADY","LAND","LANGUAGE","LARGE","LARGELY","LAST","LATE","LATER","LATTER","LAUGH","LAUNCH","LAW","LAWYER","LAY","LEAD","LEADER","LEADERSHIP","LEADING","LEAF","LEAGUE","LEAN","LEARN","LEAST","LEAVE","LEFT","LEG","LEGAL","LEGISLATION","LENGTH","LESS","LET","LETTER","LEVEL","LIABILITY","LIBERAL","LIBRARY","LIE","LIFE","LIFT","LIGHT","LIKE","LIKELY","LIMIT","LIMITED","LINE","LINK","LIP","LIST","LISTEN","LITERATURE","LITTLE","LIVE","LIVING","LOAN","LOCAL","LOCATION","LONG","LOOK","LORD","LOSE","LOSS","LOT","LOVE","LOVELY","LOW","LUNCH","MACHINE","MAGAZINE","MAIN","MAINLY","MAINTAIN","MAJOR","MAJORITY","MAKE","MALE","MAN","MANAGE","MANAGEMENT","MANAGER","MANNER","MANY","MAP","MARK","MARKET","MARRIAGE","MARRIED","MARRY","MASS","MASTER","MATCH","MATERIAL","MATTER","MAY","MAYBE","ME","MEAL","MEAN","MEANING","MEANS","MEANWHILE","MEASURE","MECHANISM","MEDIA","MEDICAL","MEET","MEETING","MEMBER","MEMBERSHIP","MEMORY","MENTAL","MENTION","MERELY","MESSAGE","METAL","METHOD","MIDDLE","MIGHT","MILE","MILITARY","MILK","MIND","MINE","MINISTER","MINISTRY","MINUTE","MISS","MISTAKE","MODEL","MODERN","MODULE","MOMENT","MONEY","MONTH","MORE","MORNING","MOST","MOTHER","MOTION","MOTOR","MOUNTAIN","MOUTH","MOVE","MOVEMENT","MUCH","MURDER","MUSEUM","MUSIC","MUST","MY","MYSELF","NAME","NARROW","NATION","NATIONAL","NATURAL","NATURE","NEAR","NEARLY","NECESSARILY","NECESSARY","NECK","NEED","NEGOTIATION","NEIGHBOUR","NEITHER","NETWORK","NEVER","NEVERTHELESS","NEW","NEWS","NEWSPAPER","NEXT","NICE","NIGHT","NO","NOBODY","NOD","NOISE","NONE","NOR","NORMAL","NORMALLY","NORTH","NORTHERN","NOSE","NOT","NOTE","NOTHING","NOTICE","NOTION","NOW","NUCLEAR","NUMBER","NURSE","OBJECT","OBJECTIVE","OBSERVATION","OBSERVE","OBTAIN","OBVIOUS","OBVIOUSLY","OCCASION","OCCUR","ODD","OF","OFF","OFFENCE","OFFER","OFFICE","OFFICER","OFFICIAL","OFTEN","OIL","OKAY","OLD","ON","ONCE","ONE","ONLY","ONTO","OPEN","OPERATE","OPERATION","OPINION","OPPORTUNITY","OPPOSITION","OPTION","OR","ORDER","ORDINARY","ORGANISATION","ORGANISE","ORGANIZATION","ORIGIN","ORIGINAL","OTHER","OTHERWISE","OUGHT","OUR","OURSELVES","OUT","OUTCOME","OUTPUT","OUTSIDE","OVER","OVERALL","OWN","OWNER","PACKAGE","PAGE","PAIN","PAINT","PAINTING","PAIR","PANEL","PAPER","PARENT","PARK","PARLIAMENT","PART","PARTICULAR","PARTICULARLY","PARTLY","PARTNER","PARTY","PASS","PASSAGE","PAST","PATH","PATIENT","PATTERN","PAY","PAYMENT","PEACE","PENSION","PEOPLE","PER","PERCENT","PERFECT","PERFORM","PERFORMANCE","PERHAPS","PERIOD","PERMANENT","PERSON","PERSONAL","PERSUADE","PHASE","PHONE","PHOTOGRAPH","PHYSICAL","PICK","PICTURE","PIECE","PLACE","PLAN","PLANNING","PLANT","PLASTIC","PLATE","PLAY","PLAYER","PLEASE","PLEASURE","PLENTY","PLUS","POCKET","POINT","POLICE","POLICY","POLITICAL","POLITICS","POOL","POOR","POPULAR","POPULATION","POSITION","POSITIVE","POSSIBILITY","POSSIBLE","POSSIBLY","POST","POTENTIAL","POUND","POWER","POWERFUL","PRACTICAL","PRACTICE","PREFER","PREPARE","PRESENCE","PRESENT","PRESIDENT","PRESS","PRESSURE","PRETTY","PREVENT","PREVIOUS","PREVIOUSLY","PRICE","PRIMARY","PRIME","PRINCIPLE","PRIORITY","PRISON","PRISONER","PRIVATE","PROBABLY","PROBLEM","PROCEDURE","PROCESS","PRODUCE","PRODUCT","PRODUCTION","PROFESSIONAL","PROFIT","PROGRAM","PROGRAMME","PROGRESS","PROJECT","PROMISE","PROMOTE","PROPER","PROPERLY","PROPERTY","PROPORTION","PROPOSE","PROPOSAL","PROSPECT","PROTECT","PROTECTION","PROVE","PROVIDE","PROVIDED","PROVISION","PUB","PUBLIC","PUBLICATION","PUBLISH","PULL","PUPIL","PURPOSE","PUSH","PUT","QUALITY","QUARTER","QUESTION","QUICK","QUICKLY","QUIET","QUITE","RACE","RADIO","RAILWAY","RAIN","RAISE","RANGE","RAPIDLY","RARE","RATE","RATHER","REACH","REACTION","READ","READER","READING","READY","REAL","REALISE","REALITY","REALIZE","REALLY","REASON","REASONABLE","RECALL","RECEIVE","RECENT","RECENTLY","RECOGNISE","RECOGNITION","RECOGNIZE","RECOMMEND","RECORD","RECOVER","RED","REDUCE","REDUCTION","REFER","REFERENCE","REFLECT","REFORM","REFUSE","REGARD","REGION","REGIONAL","REGULAR","REGULATION","REJECT","RELATE","RELATION","RELATIONSHIP","RELATIVE","RELATIVELY","RELEASE","RELEVANT","RELIEF","RELIGION","RELIGIOUS","RELY","REMAIN","REMEMBER","REMIND","REMOVE","REPEAT","REPLACE","REPLY","REPORT","REPRESENT","REPRESENTATION","REPRESENTATIVE","REQUEST","REQUIRE","REQUIREMENT","RESEARCH","RESOURCE","RESPECT","RESPOND","RESPONSE","RESPONSIBILITY","RESPONSIBLE","REST","RESTAURANT","RESULT","RETAIN","RETURN","REVEAL","REVENUE","REVIEW","REVOLUTION","RICH","RIDE","RIGHT","RING","RISE","RISK","RIVER","ROAD","ROCK","ROLE","ROLL","ROOF","ROOM","ROUND","ROUTE","ROW","ROYAL","RULE","RUN","RURAL","SAFE","SAFETY","SALE","SAME","SAMPLE","SATISFY","SAVE","SAY","SCALE","SCENE","SCHEME","SCHOOL","SCIENCE","SCIENTIFIC","SCIENTIST","SCORE","SCREEN","SEA","SEARCH","SEASON","SEAT","SECOND","SECONDARY","SECRETARY","SECTION","SECTOR","SECURE","SECURITY","SEE","SEEK","SEEM","SELECT","SELECTION","SELL","SEND","SENIOR","SENSE","SENTENCE","SEPARATE","SEQUENCE","SERIES","SERIOUS","SERIOUSLY","SERVANT","SERVE","SERVICE","SESSION","SET","SETTLE","SETTLEMENT","SEVERAL","SEVERE","SEX","SEXUAL","SHAKE","SHALL","SHAPE","SHARE","SHE","SHEET","SHIP","SHOE","SHOOT","SHOP","SHORT","SHOT","SHOULD","SHOULDER","SHOUT","SHOW","SHUT","SIDE","SIGHT","SIGN","SIGNAL","SIGNIFICANCE","SIGNIFICANT","SILENCE","SIMILAR","SIMPLE","SIMPLY","SINCE","SING","SINGLE","SIR","SISTER","SIT","SITE","SITUATION","SIZE","SKILL","SKIN","SKY","SLEEP","SLIGHTLY","SLIP","SLOW","SLOWLY","SMALL","SMILE","SO","SOCIAL","SOCIETY","SOFT","SOFTWARE","SOIL","SOLDIER","SOLICITOR","SOLUTION","SOME","SOMEBODY","SOMEONE","SOMETHING","SOMETIMES","SOMEWHAT","SOMEWHERE","SON","SONG","SOON","SORRY","SORT","SOUND","SOURCE","SOUTH","SOUTHERN","SPACE","SPEAK","SPEAKER","SPECIAL","SPECIES","SPECIFIC","SPEECH","SPEED","SPEND","SPIRIT","SPORT","SPOT","SPREAD","SPRING","STAFF","STAGE","STAND","STANDARD","STAR","START","STATE","STATEMENT","STATION","STATUS","STAY","STEAL","STEP","STICK","STILL","STOCK","STONE","STOP","STORE","STORY","STRAIGHT","STRANGE","STRATEGY","STREET","STRENGTH","STRIKE","STRONG","STRONGLY","STRUCTURE","STUDENT","STUDIO","STUDY","STUFF","STYLE","SUBJECT","SUBSTANTIAL","SUCCEED","SUCCESS","SUCCESSFUL","SUCH","SUDDENLY","SUFFER","SUFFICIENT","SUGGEST","SUGGESTION","SUITABLE","SUM","SUMMER","SUN","SUPPLY","SUPPORT","SUPPOSE","SURE","SURELY","SURFACE","SURPRISE","SURROUND","SURVEY","SURVIVE","SWITCH","SYSTEM","TABLE","TAKE","TALK","TALL","TAPE","TARGET","TASK","TAX","TEA","TEACH","TEACHER","TEACHING","TEAM","TEAR","TECHNICAL","TECHNIQUE","TECHNOLOGY","TELEPHONE","TELEVISION","TELL","TEMPERATURE","TEND","TERM","TERMS","TERRIBLE","TEST","TEXT","THAN","THANK","THANKS","THAT","THE","THEATRE","THEIR","THEM","THEME","THEMSELVES","THEN","THEORY","THERE","THEREFORE","THESE","THEY","THIN","THING","THINK","THIS","THOSE","THOUGH","THOUGHT","THREAT","THREATEN","THROUGH","THROUGHOUT","THROW","THUS","TICKET","TIME","TINY","TITLE","TO","TODAY","TOGETHER","TOMORROW","TONE","TONIGHT","TOO","TOOL","TOOTH","TOP","TOTAL","TOTALLY","TOUCH","TOUR","TOWARDS","TOWN","TRACK","TRADE","TRADITION","TRADITIONAL","TRAFFIC","TRAIN","TRAINING","TRANSFER","TRANSPORT","TRAVEL","TREAT","TREATMENT","TREATY","TREE","TREND","TRIAL","TRIP","TROOP","TROUBLE","TRUE","TRUST","TRUTH","TRY","TURN","TWICE","TYPE","TYPICAL","UNABLE","UNDER","UNDERSTAND","UNDERSTANDING","UNDERTAKE","UNEMPLOYMENT","UNFORTUNATELY","UNION","UNIT","UNITED","UNIVERSITY","UNLESS","UNLIKELY","UNTIL","UP","UPON","UPPER","URBAN","US","USE","USED","USEFUL","USER","USUAL","USUALLY","VALUE","VARIATION","VARIETY","VARIOUS","VARY","VAST","VEHICLE","VERSION","VERY","VIA","VICTIM","VICTORY","VIDEO","VIEW","VILLAGE","VIOLENCE","VISION","VISIT","VISITOR","VITAL","VOICE","VOLUME","VOTE","WAGE","WAIT","WALK","WALL","WANT","WAR","WARM","WARN","WASH","WATCH","WATER","WAVE","WAY","WE","WEAK","WEAPON","WEAR","WEATHER","WEEK","WEEKEND","WEIGHT","WELCOME","WELFARE","WELL","WEST","WESTERN","WHAT","WHATEVER","WHEN","WHERE","WHEREAS","WHETHER","WHICH","WHILE","WHILST","WHITE","WHO","WHOLE","WHOM","WHOSE","WHY","WIDE","WIDELY","WIFE","WILD","WILL","WIN","WIND","WINDOW","WINE","WING","WINNER","WINTER","WISH","WITH","WITHDRAW","WITHIN","WITHOUT","WOMAN","WONDER","WONDERFUL","WOOD","WORD","WORK","WORKER","WORKING","WORKS","WORLD","WORRY","WORTH","WOULD","WRITE","WRITER","WRITING","WRONG","YARD","YEAH","YEAR","YES","YESTERDAY","YET","YOU","YOUNG","YOUR","YOURSELF","YOUTH" -------------------------------------------------------------------------------- /README: -------------------------------------------------------------------------------- 1 | These are my solutions for Project Euler in C. 2 | Some of them requires GMP. 3 | --------------------------------------------------------------------------------