diff --git a/LICENSE b/LICENSE index e06d208..c920e98 100644 --- a/LICENSE +++ b/LICENSE @@ -1,202 +1,21 @@ -Apache License - Version 2.0, January 2004 - http://www.apache.org/licenses/ +The MIT License (MIT) - TERMS AND CONDITIONS FOR USE, REPRODUCTION, AND DISTRIBUTION +Copyright (c) 2014 Mari Wahl - 1. Definitions. +Permission is hereby granted, free of charge, to any person obtaining a copy +of this software and associated documentation files (the "Software"), to deal +in the Software without restriction, including without limitation the rights +to use, copy, modify, merge, publish, distribute, sublicense, and/or sell +copies of the Software, and to permit persons to whom the Software is +furnished to do so, subject to the following conditions: - "License" shall mean the terms and conditions for use, reproduction, - and distribution as defined by Sections 1 through 9 of this document. - - "Licensor" shall mean the copyright owner or entity authorized by - the copyright owner that is granting the License. - - "Legal Entity" shall mean the union of the acting entity and all - other entities that control, are controlled by, or are under common - control with that entity. For the purposes of this definition, - "control" means (i) the power, direct or indirect, to cause the - direction or management of such entity, whether by contract or - otherwise, or (ii) ownership of fifty percent (50%) or more of the - outstanding shares, or (iii) beneficial ownership of such entity. - - "You" (or "Your") shall mean an individual or Legal Entity - exercising permissions granted by this License. - - "Source" form shall mean the preferred form for making modifications, - including but not limited to software source code, documentation - source, and configuration files. - - "Object" form shall mean any form resulting from mechanical - transformation or translation of a Source form, including but - not limited to compiled object code, generated documentation, - and conversions to other media types. - - "Work" shall mean the work of authorship, whether in Source or - Object form, made available under the License, as indicated by a - copyright notice that is included in or attached to the work - (an example is provided in the Appendix below). - - "Derivative Works" shall mean any work, whether in Source or Object - form, that is based on (or derived from) the Work and for which the - editorial revisions, annotations, elaborations, or other modifications - represent, as a whole, an original work of authorship. For the purposes - of this License, Derivative Works shall not include works that remain - separable from, or merely link (or bind by name) to the interfaces of, - the Work and Derivative Works thereof. - - "Contribution" shall mean any work of authorship, including - the original version of the Work and any modifications or additions - to that Work or Derivative Works thereof, that is intentionally - submitted to Licensor for inclusion in the Work by the copyright owner - or by an individual or Legal Entity authorized to submit on behalf of - the copyright owner. For the purposes of this definition, "submitted" - means any form of electronic, verbal, or written communication sent - to the Licensor or its representatives, including but not limited to - communication on electronic mailing lists, source code control systems, - and issue tracking systems that are managed by, or on behalf of, the - Licensor for the purpose of discussing and improving the Work, but - excluding communication that is conspicuously marked or otherwise - designated in writing by the copyright owner as "Not a Contribution." - - "Contributor" shall mean Licensor and any individual or Legal Entity - on behalf of whom a Contribution has been received by Licensor and - subsequently incorporated within the Work. - - 2. Grant of Copyright License. Subject to the terms and conditions of - this License, each Contributor hereby grants to You a perpetual, - worldwide, non-exclusive, no-charge, royalty-free, irrevocable - copyright license to reproduce, prepare Derivative Works of, - publicly display, publicly perform, sublicense, and distribute the - Work and such Derivative Works in Source or Object form. - - 3. Grant of Patent License. Subject to the terms and conditions of - this License, each Contributor hereby grants to You a perpetual, - worldwide, non-exclusive, no-charge, royalty-free, irrevocable - (except as stated in this section) patent license to make, have made, - use, offer to sell, sell, import, and otherwise transfer the Work, - where such license applies only to those patent claims licensable - by such Contributor that are necessarily infringed by their - Contribution(s) alone or by combination of their Contribution(s) - with the Work to which such Contribution(s) was submitted. If You - institute patent litigation against any entity (including a - cross-claim or counterclaim in a lawsuit) alleging that the Work - or a Contribution incorporated within the Work constitutes direct - or contributory patent infringement, then any patent licenses - granted to You under this License for that Work shall terminate - as of the date such litigation is filed. - - 4. Redistribution. You may reproduce and distribute copies of the - Work or Derivative Works thereof in any medium, with or without - modifications, and in Source or Object form, provided that You - meet the following conditions: - - (a) You must give any other recipients of the Work or - Derivative Works a copy of this License; and - - (b) You must cause any modified files to carry prominent notices - stating that You changed the files; and - - (c) You must retain, in the Source form of any Derivative Works - that You distribute, all copyright, patent, trademark, and - attribution notices from the Source form of the Work, - excluding those notices that do not pertain to any part of - the Derivative Works; and - - (d) If the Work includes a "NOTICE" text file as part of its - distribution, then any Derivative Works that You distribute must - include a readable copy of the attribution notices contained - within such NOTICE file, excluding those notices that do not - pertain to any part of the Derivative Works, in at least one - of the following places: within a NOTICE text file distributed - as part of the Derivative Works; within the Source form or - documentation, if provided along with the Derivative Works; or, - within a display generated by the Derivative Works, if and - wherever such third-party notices normally appear. The contents - of the NOTICE file are for informational purposes only and - do not modify the License. You may add Your own attribution - notices within Derivative Works that You distribute, alongside - or as an addendum to the NOTICE text from the Work, provided - that such additional attribution notices cannot be construed - as modifying the License. - - You may add Your own copyright statement to Your modifications and - may provide additional or different license terms and conditions - for use, reproduction, or distribution of Your modifications, or - for any such Derivative Works as a whole, provided Your use, - reproduction, and distribution of the Work otherwise complies with - the conditions stated in this License. - - 5. Submission of Contributions. Unless You explicitly state otherwise, - any Contribution intentionally submitted for inclusion in the Work - by You to the Licensor shall be under the terms and conditions of - this License, without any additional terms or conditions. - Notwithstanding the above, nothing herein shall supersede or modify - the terms of any separate license agreement you may have executed - with Licensor regarding such Contributions. - - 6. Trademarks. This License does not grant permission to use the trade - names, trademarks, service marks, or product names of the Licensor, - except as required for reasonable and customary use in describing the - origin of the Work and reproducing the content of the NOTICE file. - - 7. Disclaimer of Warranty. Unless required by applicable law or - agreed to in writing, Licensor provides the Work (and each - Contributor provides its Contributions) on an "AS IS" BASIS, - WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or - implied, including, without limitation, any warranties or conditions - of TITLE, NON-INFRINGEMENT, MERCHANTABILITY, or FITNESS FOR A - PARTICULAR PURPOSE. You are solely responsible for determining the - appropriateness of using or redistributing the Work and assume any - risks associated with Your exercise of permissions under this License. - - 8. Limitation of Liability. In no event and under no legal theory, - whether in tort (including negligence), contract, or otherwise, - unless required by applicable law (such as deliberate and grossly - negligent acts) or agreed to in writing, shall any Contributor be - liable to You for damages, including any direct, indirect, special, - incidental, or consequential damages of any character arising as a - result of this License or out of the use or inability to use the - Work (including but not limited to damages for loss of goodwill, - work stoppage, computer failure or malfunction, or any and all - other commercial damages or losses), even if such Contributor - has been advised of the possibility of such damages. - - 9. Accepting Warranty or Additional Liability. While redistributing - the Work or Derivative Works thereof, You may choose to offer, - and charge a fee for, acceptance of support, warranty, indemnity, - or other liability obligations and/or rights consistent with this - License. However, in accepting such obligations, You may act only - on Your own behalf and on Your sole responsibility, not on behalf - of any other Contributor, and only if You agree to indemnify, - defend, and hold each Contributor harmless for any liability - incurred by, or claims asserted against, such Contributor by reason - of your accepting any such warranty or additional liability. - - END OF TERMS AND CONDITIONS - - APPENDIX: How to apply the Apache License to your work. - - To apply the Apache License to your work, attach the following - boilerplate notice, with the fields enclosed by brackets "{}" - replaced with your own identifying information. (Don't include - the brackets!) The text should be enclosed in the appropriate - comment syntax for the file format. We also recommend that a - file or class name and description of purpose be included on the - same "printed page" as the copyright notice for easier - identification within third-party archives. - - Copyright {yyyy} {name of copyright owner} - - Licensed under the Apache License, Version 2.0 (the "License"); - you may not use this file except in compliance with the License. - You may obtain a copy of the License at - - http://www.apache.org/licenses/LICENSE-2.0 - - Unless required by applicable law or agreed to in writing, software - distributed under the License is distributed on an "AS IS" BASIS, - WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. - See the License for the specific language governing permissions and - limitations under the License. +The above copyright notice and this permission notice shall be included in all +copies or substantial portions of the Software. +THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR +IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, +FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE +AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER +LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, +OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE +SOFTWARE. \ No newline at end of file diff --git a/src/further_examples/more_algorithm_exercises/arrays_and_strings/comb_str.py b/src/further_examples/arrays_and_strings/comb_str.py similarity index 100% rename from src/further_examples/more_algorithm_exercises/arrays_and_strings/comb_str.py rename to src/further_examples/arrays_and_strings/comb_str.py diff --git a/src/further_examples/more_algorithm_exercises/arrays_and_strings/conv_str2int.py b/src/further_examples/arrays_and_strings/conv_str2int.py similarity index 100% rename from src/further_examples/more_algorithm_exercises/arrays_and_strings/conv_str2int.py rename to src/further_examples/arrays_and_strings/conv_str2int.py diff --git a/src/further_examples/more_algorithm_exercises/arrays_and_strings/find_0_MxN_replace_cols_rows.py b/src/further_examples/arrays_and_strings/find_0_MxN_replace_cols_rows.py similarity index 100% rename from src/further_examples/more_algorithm_exercises/arrays_and_strings/find_0_MxN_replace_cols_rows.py rename to src/further_examples/arrays_and_strings/find_0_MxN_replace_cols_rows.py diff --git a/src/further_examples/more_algorithm_exercises/arrays_and_strings/find_first_non_repetead_char.py b/src/further_examples/arrays_and_strings/find_first_non_repetead_char.py similarity index 100% rename from src/further_examples/more_algorithm_exercises/arrays_and_strings/find_first_non_repetead_char.py rename to src/further_examples/arrays_and_strings/find_first_non_repetead_char.py diff --git a/src/further_examples/more_algorithm_exercises/arrays_and_strings/find_if_is_substr.py b/src/further_examples/arrays_and_strings/find_if_is_substr.py similarity index 100% rename from src/further_examples/more_algorithm_exercises/arrays_and_strings/find_if_is_substr.py rename to src/further_examples/arrays_and_strings/find_if_is_substr.py diff --git a/src/further_examples/more_algorithm_exercises/arrays_and_strings/find_if_only_unique_chars.py b/src/further_examples/arrays_and_strings/find_if_only_unique_chars.py similarity index 100% rename from src/further_examples/more_algorithm_exercises/arrays_and_strings/find_if_only_unique_chars.py rename to src/further_examples/arrays_and_strings/find_if_only_unique_chars.py diff --git a/src/further_examples/more_algorithm_exercises/arrays_and_strings/perm_str.py b/src/further_examples/arrays_and_strings/perm_str.py similarity index 100% rename from src/further_examples/more_algorithm_exercises/arrays_and_strings/perm_str.py rename to src/further_examples/arrays_and_strings/perm_str.py diff --git a/src/further_examples/more_algorithm_exercises/arrays_and_strings/remove_specified_char_from_str.py b/src/further_examples/arrays_and_strings/remove_specified_char_from_str.py similarity index 100% rename from src/further_examples/more_algorithm_exercises/arrays_and_strings/remove_specified_char_from_str.py rename to src/further_examples/arrays_and_strings/remove_specified_char_from_str.py diff --git a/src/further_examples/more_algorithm_exercises/arrays_and_strings/reverse_str.py b/src/further_examples/arrays_and_strings/reverse_str.py similarity index 100% rename from src/further_examples/more_algorithm_exercises/arrays_and_strings/reverse_str.py rename to src/further_examples/arrays_and_strings/reverse_str.py diff --git a/src/further_examples/more_algorithm_exercises/arrays_and_strings/reverse_words_setence.py b/src/further_examples/arrays_and_strings/reverse_words_setence.py similarity index 100% rename from src/further_examples/more_algorithm_exercises/arrays_and_strings/reverse_words_setence.py rename to src/further_examples/arrays_and_strings/reverse_words_setence.py diff --git a/src/further_examples/more_algorithm_exercises/arrays_and_strings/rotate_NxN.py b/src/further_examples/arrays_and_strings/rotate_NxN.py similarity index 100% rename from src/further_examples/more_algorithm_exercises/arrays_and_strings/rotate_NxN.py rename to src/further_examples/arrays_and_strings/rotate_NxN.py diff --git a/src/further_examples/more_algorithm_exercises/arrays_and_strings/simple_str_comprension.py b/src/further_examples/arrays_and_strings/simple_str_comprension.py similarity index 100% rename from src/further_examples/more_algorithm_exercises/arrays_and_strings/simple_str_comprension.py rename to src/further_examples/arrays_and_strings/simple_str_comprension.py diff --git a/src/further_examples/more_algorithm_exercises/arrays_and_strings/verify_if_perm.py b/src/further_examples/arrays_and_strings/verify_if_perm.py similarity index 100% rename from src/further_examples/more_algorithm_exercises/arrays_and_strings/verify_if_perm.py rename to src/further_examples/arrays_and_strings/verify_if_perm.py diff --git a/src/further_examples/more_algorithm_exercises/bit_operations/bit_array.py b/src/further_examples/bit_operations/bit_array.py similarity index 100% rename from src/further_examples/more_algorithm_exercises/bit_operations/bit_array.py rename to src/further_examples/bit_operations/bit_array.py diff --git a/src/further_examples/more_algorithm_exercises/bit_operations/clear_bits.py b/src/further_examples/bit_operations/clear_bits.py similarity index 100% rename from src/further_examples/more_algorithm_exercises/bit_operations/clear_bits.py rename to src/further_examples/bit_operations/clear_bits.py diff --git a/src/further_examples/more_algorithm_exercises/bit_operations/find_bit_len.py b/src/further_examples/bit_operations/find_bit_len.py similarity index 100% rename from src/further_examples/more_algorithm_exercises/bit_operations/find_bit_len.py rename to src/further_examples/bit_operations/find_bit_len.py diff --git a/src/further_examples/more_algorithm_exercises/bit_operations/find_how_many_1_binary.py b/src/further_examples/bit_operations/find_how_many_1_binary.py similarity index 100% rename from src/further_examples/more_algorithm_exercises/bit_operations/find_how_many_1_binary.py rename to src/further_examples/bit_operations/find_how_many_1_binary.py diff --git a/src/further_examples/more_algorithm_exercises/bit_operations/get_bit.py b/src/further_examples/bit_operations/get_bit.py similarity index 100% rename from src/further_examples/more_algorithm_exercises/bit_operations/get_bit.py rename to src/further_examples/bit_operations/get_bit.py diff --git a/src/further_examples/more_algorithm_exercises/bit_operations/get_float_rep_bin.py b/src/further_examples/bit_operations/get_float_rep_bin.py similarity index 100% rename from src/further_examples/more_algorithm_exercises/bit_operations/get_float_rep_bin.py rename to src/further_examples/bit_operations/get_float_rep_bin.py diff --git a/src/further_examples/more_algorithm_exercises/bit_operations/insert_small_bin_into_big_bin.py b/src/further_examples/bit_operations/insert_small_bin_into_big_bin.py similarity index 100% rename from src/further_examples/more_algorithm_exercises/bit_operations/insert_small_bin_into_big_bin.py rename to src/further_examples/bit_operations/insert_small_bin_into_big_bin.py diff --git a/src/further_examples/more_algorithm_exercises/bit_operations/next_with_same_num_1s.py b/src/further_examples/bit_operations/next_with_same_num_1s.py similarity index 100% rename from src/further_examples/more_algorithm_exercises/bit_operations/next_with_same_num_1s.py rename to src/further_examples/bit_operations/next_with_same_num_1s.py diff --git a/src/further_examples/more_algorithm_exercises/bit_operations/num_bits_to_convert_2_nums.py b/src/further_examples/bit_operations/num_bits_to_convert_2_nums.py similarity index 100% rename from src/further_examples/more_algorithm_exercises/bit_operations/num_bits_to_convert_2_nums.py rename to src/further_examples/bit_operations/num_bits_to_convert_2_nums.py diff --git a/src/further_examples/more_algorithm_exercises/bit_operations/set_bit.py b/src/further_examples/bit_operations/set_bit.py similarity index 100% rename from src/further_examples/more_algorithm_exercises/bit_operations/set_bit.py rename to src/further_examples/bit_operations/set_bit.py diff --git a/src/further_examples/more_algorithm_exercises/bit_operations/swap_odd_even.py b/src/further_examples/bit_operations/swap_odd_even.py similarity index 100% rename from src/further_examples/more_algorithm_exercises/bit_operations/swap_odd_even.py rename to src/further_examples/bit_operations/swap_odd_even.py diff --git a/src/further_examples/more_algorithm_exercises/bit_operations/update_bit.py b/src/further_examples/bit_operations/update_bit.py similarity index 100% rename from src/further_examples/more_algorithm_exercises/bit_operations/update_bit.py rename to src/further_examples/bit_operations/update_bit.py diff --git a/src/further_examples/more_algorithm_exercises/linked_list/check_pal.py b/src/further_examples/linked_list/check_pal.py similarity index 100% rename from src/further_examples/more_algorithm_exercises/linked_list/check_pal.py rename to src/further_examples/linked_list/check_pal.py diff --git a/src/further_examples/more_algorithm_exercises/linked_list/circ_ll.py b/src/further_examples/linked_list/circ_ll.py similarity index 100% rename from src/further_examples/more_algorithm_exercises/linked_list/circ_ll.py rename to src/further_examples/linked_list/circ_ll.py diff --git a/src/further_examples/more_algorithm_exercises/linked_list/double_linked_list_fifo.py b/src/further_examples/linked_list/double_linked_list_fifo.py similarity index 100% rename from src/further_examples/more_algorithm_exercises/linked_list/double_linked_list_fifo.py rename to src/further_examples/linked_list/double_linked_list_fifo.py diff --git a/src/further_examples/more_algorithm_exercises/linked_list/find_kth.py b/src/further_examples/linked_list/find_kth.py similarity index 100% rename from src/further_examples/more_algorithm_exercises/linked_list/find_kth.py rename to src/further_examples/linked_list/find_kth.py diff --git a/src/further_examples/more_algorithm_exercises/linked_list/hash_table.py b/src/further_examples/linked_list/hash_table.py similarity index 100% rename from src/further_examples/more_algorithm_exercises/linked_list/hash_table.py rename to src/further_examples/linked_list/hash_table.py diff --git a/src/further_examples/more_algorithm_exercises/linked_list/linked_list_fifo.py b/src/further_examples/linked_list/linked_list_fifo.py similarity index 100% rename from src/further_examples/more_algorithm_exercises/linked_list/linked_list_fifo.py rename to src/further_examples/linked_list/linked_list_fifo.py diff --git a/src/further_examples/more_algorithm_exercises/linked_list/linked_list_lifo.py b/src/further_examples/linked_list/linked_list_lifo.py similarity index 100% rename from src/further_examples/more_algorithm_exercises/linked_list/linked_list_lifo.py rename to src/further_examples/linked_list/linked_list_lifo.py diff --git a/src/further_examples/more_algorithm_exercises/linked_list/part_ll.py b/src/further_examples/linked_list/part_ll.py similarity index 100% rename from src/further_examples/more_algorithm_exercises/linked_list/part_ll.py rename to src/further_examples/linked_list/part_ll.py diff --git a/src/further_examples/more_algorithm_exercises/linked_list/sum_ll.py b/src/further_examples/linked_list/sum_ll.py similarity index 100% rename from src/further_examples/more_algorithm_exercises/linked_list/sum_ll.py rename to src/further_examples/linked_list/sum_ll.py diff --git a/src/further_examples/others/printing_numbers.py b/src/further_examples/others/printing_numbers.py deleted file mode 100644 index eafa9cb..0000000 --- a/src/further_examples/others/printing_numbers.py +++ /dev/null @@ -1,25 +0,0 @@ -#!/usr/bin/python3 -# mari von steinkirch @2014 -# steinkirch at gmail -# for hacker school application -''' -Write a program that prints out the numbers 1 to 100 (inclusive). If the number is divisible by 3, print Crackle instead of the number. If it's divisible by 5, print Pop. If it's divisible by both 3 and 5, print CracklePop. -''' - - - -def CracklePop(n): - for i in range(1, n+1): - if i%3 == 0 and i%5 == 0: print('CracklePop!!!') - elif i%3 == 0: print("Crackle!!!") - elif i%5 == 0: print("Pop!!!") - else: print(i) - - -def main(): - CracklePop(100) - - -if __name__ == '__main__': - main() - diff --git a/src/further_examples/project_euler/amicable_numbers.py b/src/further_examples/project_euler/amicable_numbers.py deleted file mode 100644 index 02c262b..0000000 --- a/src/further_examples/project_euler/amicable_numbers.py +++ /dev/null @@ -1,44 +0,0 @@ -#!/usr/bin/python3 -# mari von steinkirch @2013 -# steinkirch at gmail - -''' -Let d(n) be defined as the sum of proper divisors of n (numbers less than n which divide evenly into n). -If d(a) = b and d(b) = a, where a b, then a and b are an amicable pair and each of a and b are called amicable numbers. - -For example, the proper divisors of 220 are 1, 2, 4, 5, 10, 11, 20, 22, 44, 55 and 110; therefore d(220) = 284. The proper divisors of 284 are 1, 2, 4, 71 and 142; so d(284) = 220. - -Evaluate the sum of all the amicable numbers under 10000. -''' - -def find_sum_proper_divisors(n): - sum_proper_div = 0 - for i in range(1, n): - if n%i == 0: - sum_proper_div += i - return sum_proper_div - - -def amicable_numbers(N): - sum_div_list = [find_sum_proper_divisors(i) for i in range(1, N+1)] - sum_amicable_numbers = 0 - set_div = set() - for a in range(1, N): - da = sum_div_list[a-1] - if da < N: - b = da - db = sum_div_list[b-1] - if a != b and db == a and a not in set_div and b not in set_div: - sum_amicable_numbers += a + b - set_div.add(a) - set_div.add(b) - return sum_amicable_numbers - - -def main(): - print(amicable_numbers(10000)) - print('Tests Passed!') - -if __name__ == '__main__': - main() - diff --git a/src/further_examples/project_euler/circular_primes.py b/src/further_examples/project_euler/circular_primes.py deleted file mode 100644 index 1f89d6f..0000000 --- a/src/further_examples/project_euler/circular_primes.py +++ /dev/null @@ -1,91 +0,0 @@ -#!/usr/bin/python3 -# mari von steinkirch @2013 -# steinkirch at gmail - -def isPrime(n): - n = abs(int(n)) - if n < 2: - return False - if n == 2: - return True - for x in range(2, int(n**0.5)+1): - if n%x == 0: - return False - return True - - -def findPermutations(s): - res = [] - if len(s) == 1: - res.append(s) - else: - for i, c in enumerate(s): - for perm in findPermutations(s[:i] + s[i+1:]): - res.append(c + perm) - return res - - - - - -def isCircular(n): - n_str = str(n) - permutations = findPermutations(n_str) - for perm in permutations: - if not isPrime(perm): - return False - return True - - - -def generatePrimes(n): - if n == 2: return [2] - elif n < 2: return [] - s = [i for i in range(3, n+1, 2)] - mroot = n ** 0.5 - half = (n+1)//2 - 1 - i, m = 0, 3 - while m <= mroot: - if s[i]: - j = (m*m-3)//2 - s[j] = 0 - while j < half: - s[j] = 0 - j += m - i = i+1 - m = 2*i+3 - return [2]+[x for x in s if x] - - -def generate_n_Primes(n): - primes = [] - chkthis = 2 - while len(primes) < n: - ptest = [chkthis for i in primes if chkthis%i == 0] - primes += [] if ptest else [chkthis] - chkthis += 1 - return primes - - - -def circular_primes(n): - primes = generatePrimes(n) - count = 0 - for prime in primes: - if isCircular(prime): - count += 1 - return count - - -def main(): - import time - start = time.time() - - print(circular_primes(1000000)) - - elapsed = (time.time() - start) - print('Tests Passed!\n It took %s seconds to run them.' % (elapsed)) - -if __name__ == '__main__': - main() - diff --git a/src/further_examples/project_euler/counting_sundays.py b/src/further_examples/project_euler/counting_sundays.py deleted file mode 100644 index 6951b8f..0000000 --- a/src/further_examples/project_euler/counting_sundays.py +++ /dev/null @@ -1,65 +0,0 @@ -#!/usr/bin/python3 -# mari von steinkirch @2013 -# steinkirch at gmail - -''' -1 Jan 1900 was a Monday. -Thirty days has September, -April, June and November. -All the rest have thirty-one, -Saving February alone, -Which has twenty-eight, rain or shine. -And on leap years, twenty-nine. -A leap year occurs on any year evenly divisible by 4, but not on a century unless it is divisible by 400. -How many Sundays fell on the first of the month during the twentieth century (1 Jan 1901 to 31 Dec 2000)? -''' - - -def find_if_leap_year(y): - if (y%4 == 0 and y%100 != 0) or (y%400 == 0): - return True - return False - - -def counting_sundays(): - ''' define variables ''' - days_year = 7*31 + 4*30 + 28 - count_sundays = 0 - days_week = 7 - dict_week = {0: 'mon', 1:'tue', 2:'wed', 3:'thu', 4:'fri', 5:'sat', 6:'sun'} - - - ''' with info from 1900 find first day for 1901 ''' - first_day = days_year%days_week # not a leap year - - for y in range (1901, 2001): - leap_year = find_if_leap_year(y) - days_count = first_day - - for m in range(1, 13): - if days_count%7 == 6: - count_sundays += 1 - if m == 2: - if leap_year: - days_count += 29 - else: - days_count += 28 - elif m == 4 or m == 6 or m == 9 or m == 11: - days_count += 30 - else: - days_count += 31 - - if leap_year: first_day = (first_day +2)%days_week - else: first_day = (first_day +1)%days_week - - return count_sundays - - - -def main(): - print(counting_sundays()) - print('Tests Passed!') - -if __name__ == '__main__': - main() - diff --git a/src/further_examples/project_euler/digit_fifth_pow.py b/src/further_examples/project_euler/digit_fifth_pow.py deleted file mode 100644 index 14a9985..0000000 --- a/src/further_examples/project_euler/digit_fifth_pow.py +++ /dev/null @@ -1,30 +0,0 @@ -#!/usr/bin/python3 -# mari von steinkirch @2013 -# steinkirch at gmail - -def digit_fifth_pow(n): - lnum = [] - for num in range(10**(2), 10**(n+2)): - sum_here = 0 - num_str = str(num) - for i in num_str: - num_int = int(i) - num_int_pow = num_int**n - sum_here += num_int_pow - if sum_here == num: - lnum.append(num) - return lnum, sum(lnum) - - -def main(): - import time - start = time.time() - - print(digit_fifth_pow(5)) - - elapsed = (time.time() - start) - print('Tests Passed!\n It took %s seconds to run them.' % (elapsed)) - -if __name__ == '__main__': - main() - diff --git a/src/further_examples/project_euler/dist_pow.py b/src/further_examples/project_euler/dist_pow.py deleted file mode 100644 index 0b47350..0000000 --- a/src/further_examples/project_euler/dist_pow.py +++ /dev/null @@ -1,27 +0,0 @@ -#!/usr/bin/python3 -# mari von steinkirch @2013 -# steinkirch at gmail - -def dist_pow(a1, a2, b1, b2): - set1 = set() - for a in range(a1, a2 + 1): - for b in range(b1, b2 + 1): - set1.add(a**b) - return len(set1) - - - - -def main(): - import time - start = time.time() - - print(dist_pow(2, 5, 2, 5)) - print(dist_pow(2, 100, 2, 100)) - - elapsed = (time.time() - start) - print('Tests Passed!\n It took %s seconds to run them.' % (elapsed)) - -if __name__ == '__main__': - main() - diff --git a/src/further_examples/project_euler/even_fib_num.py b/src/further_examples/project_euler/even_fib_num.py deleted file mode 100644 index f465b29..0000000 --- a/src/further_examples/project_euler/even_fib_num.py +++ /dev/null @@ -1,18 +0,0 @@ -#!/usr/bin/python3 -# mari von steinkirch @2013 -# steinkirch at gmail - - -def even_fib_num(limit): - a, b = 0, 1 - while a < limit: - yield a - a, b = b, a + b - -def main(): - print(sum(n for n in even_fib_num(4e6) if not (n & 1))) - print('Tests Passed!') - -if __name__ == '__main__': - main() - diff --git a/src/further_examples/project_euler/factorial.py b/src/further_examples/project_euler/factorial.py deleted file mode 100644 index b19bea2..0000000 --- a/src/further_examples/project_euler/factorial.py +++ /dev/null @@ -1,32 +0,0 @@ -#!/usr/bin/python3 -# mari von steinkirch @2013 -# steinkirch at gmail - -def factorial(n): - prod = 1 - for i in range(1,n): - prod *= i - return prod - -def find_sum(n): - sum_ = 0 - fact = factorial(n) - number = str(fact) - for i in number: - sum_ += int(i) - return sum_ - - -def main(): - import time - start = time.time() - - assert(find_sum(10) == 27) - print(find_sum(100)) - - elapsed = (time.time() - start) - print('Tests Passed!\n It took %s seconds to run them.' % (elapsed)) - -if __name__ == '__main__': - main() - diff --git a/src/further_examples/project_euler/findstprime.py b/src/further_examples/project_euler/findstprime.py deleted file mode 100644 index 4f56209..0000000 --- a/src/further_examples/project_euler/findstprime.py +++ /dev/null @@ -1,32 +0,0 @@ -#!/usr/bin/python3 -# mari von steinkirch @2013 -# steinkirch at gmail - -import math - -def is_prime(number, prime_set): - if number in prime_set: return True - for i in range(2, int(math.sqrt(number)) + 1): - if not number%i: return False - return True - - -def findstprime(n): - count = 0 - candidate = 1 - prime_set = set() - while count < n: - candidate +=1 - if is_prime(candidate, prime_set): - prime_set.add(candidate) - count += 1 - return candidate - -def main(): - assert(findstprime(6 == 13)) - print(findstprime(10001)) - print('Tests Passed!') - -if __name__ == '__main__': - main() - diff --git a/src/further_examples/project_euler/gold_other.py b/src/further_examples/project_euler/gold_other.py deleted file mode 100644 index 5b471e4..0000000 --- a/src/further_examples/project_euler/gold_other.py +++ /dev/null @@ -1,64 +0,0 @@ -#!/usr/bin/python3 -# mari von steinkirch @2013 -# steinkirch at gmail - -def isPrime(n): - n = abs(int(n)) - if n < 2: - return False - if n == 2: - return True - if not n & 1: - return False - for x in range(3, int(n**0.5)+1, 2): - if n % x == 0: - return False - return True - - -def generetePrimes(n): - if n == 2: return [2] - elif n < 2: return [] - s = [i for i in range(3, n+1,2)] - mroot = n ** 0.5 - half = (n+1)//2-1 - i = 0 - m = 3 - while m <= mroot: - if s[i]: - j = (m*m - 3)//2 - s[j] = 0 - while j < half: - s[j] = 0 - j += m - i = i+1 - m = 2*i+3 - return [2]+[x for x in s if x] - - -def gold_other(n): - primes_for_n = generetePrimes(n) - numbers = {prime + 2*x**2 for prime in primes_for_n for x in range(1, int(n**0.5))} - conj = {x for x in range(3, n, 2) if not isPrime(x)} - - while True: - candidates = conj - numbers - if not candidates: - gold_other(2*n) - else: - return min(candidates) - - - -def main(): - import time - start = time.time() - - print(gold_other(10000)) - - elapsed = (time.time() - start) - print('Tests Passed!\n It took %s seconds to run them.' % (elapsed)) - -if __name__ == '__main__': - main() - diff --git a/src/further_examples/project_euler/highly_divisible_trian_num.py b/src/further_examples/project_euler/highly_divisible_trian_num.py deleted file mode 100644 index 41cd2f1..0000000 --- a/src/further_examples/project_euler/highly_divisible_trian_num.py +++ /dev/null @@ -1,43 +0,0 @@ -#!/usr/bin/python3 -# mari von steinkirch @2013 -# steinkirch at gmail - -import math - -def find_div(n): - ''' find the divisor of a given n''' - set_div = {1, n} - for i in range(2, int(math.sqrt(n))+ 1): - if not n % i: - set_div.add(i) - set_div.add(n//i) - l1 = list(set_div) - return len(l1) - - -def find_trian(l): - ''' find the lth trian number''' - return sum(range(1, l+1)) - - -def highly_divisible_trian_num(d): - thtriangle, n_div, count = 1, 0, 1 - while n_div < d: - count += 1 - thtriangle += count - n_div = find_div(thtriangle) - return (thtriangle, count) - - -def main(): - import time - start = time.time() - assert(highly_divisible_trian_num(6) == (28, 7)) - print(highly_divisible_trian_num(500)) - - elapsed = (time.time() - start) - print('Tests Passed!\n It took %s seconds to run them.' % (elapsed)) - -if __name__ == '__main__': - main() - diff --git a/src/further_examples/project_euler/larg_palindrome.py b/src/further_examples/project_euler/larg_palindrome.py deleted file mode 100644 index e9f6a89..0000000 --- a/src/further_examples/project_euler/larg_palindrome.py +++ /dev/null @@ -1,47 +0,0 @@ -#!/usr/bin/python3 -# mari von steinkirch @2013 -# steinkirch at gmail - - - -def is_palindrome(s): - return s == reverse(s) - -def reverse(s): - rev = 0 - while s > 0: - rev = 10*rev + s%10 - s = s//10 - return rev - - -def is_palindrome_2(s): - # to use it you need to cast str() first - while s: - if s[0] != s[-1]: return False - else: - s = s[1:-1] - is_palindrome(s) - return True - - -def larg_palind_product(n): - nmax, largpal = 9, 0 - for i in range(1, n): - nmax += 9*10**i - for i in range(nmax, nmax//2, -1): - for j in range(i -1, (i -1)//2, -1): - candidate = i*j - if is_palindrome(candidate) and candidate > largpal: - largpal = candidate - return largpal - - -def test_larg_palind_product(): - assert(larg_palind_product(2)== 9009) - print(larg_palind_product(3)) - print('Tests Passed!') - -if __name__ == '__main__': - test_larg_palind_product() - diff --git a/src/further_examples/project_euler/larg_prod_grid.dat b/src/further_examples/project_euler/larg_prod_grid.dat deleted file mode 100644 index 4ac2451..0000000 --- a/src/further_examples/project_euler/larg_prod_grid.dat +++ /dev/null @@ -1,20 +0,0 @@ -08 02 22 97 38 15 00 40 00 75 04 05 07 78 52 12 50 77 91 08 -49 49 99 40 17 81 18 57 60 87 17 40 98 43 69 48 04 56 62 00 -81 49 31 73 55 79 14 29 93 71 40 67 53 88 30 03 49 13 36 65 -52 70 95 23 04 60 11 42 69 24 68 56 01 32 56 71 37 02 36 91 -22 31 16 71 51 67 63 89 41 92 36 54 22 40 40 28 66 33 13 80 -24 47 32 60 99 03 45 02 44 75 33 53 78 36 84 20 35 17 12 50 -32 98 81 28 64 23 67 10 26 38 40 67 59 54 70 66 18 38 64 70 -67 26 20 68 02 62 12 20 95 63 94 39 63 08 40 91 66 49 94 21 -24 55 58 05 66 73 99 26 97 17 78 78 96 83 14 88 34 89 63 72 -21 36 23 09 75 00 76 44 20 45 35 14 00 61 33 97 34 31 33 95 -78 17 53 28 22 75 31 67 15 94 03 80 04 62 16 14 09 53 56 92 -16 39 05 42 96 35 31 47 55 58 88 24 00 17 54 24 36 29 85 57 -86 56 00 48 35 71 89 07 05 44 44 37 44 60 21 58 51 54 17 58 -19 80 81 68 05 94 47 69 28 73 92 13 86 52 17 77 04 89 55 40 -04 52 08 83 97 35 99 16 07 97 57 32 16 26 26 79 33 27 98 66 -88 36 68 87 57 62 20 72 03 46 33 67 46 55 12 32 63 93 53 69 -04 42 16 73 38 25 39 11 24 94 72 18 08 46 29 32 40 62 76 36 -20 69 36 41 72 30 23 88 34 62 99 69 82 67 59 85 74 04 36 16 -20 73 35 29 78 31 90 01 74 31 49 71 48 86 81 16 23 57 05 54 -01 70 54 71 83 51 54 69 16 92 33 48 61 43 52 01 89 19 67 48 diff --git a/src/further_examples/project_euler/larg_prod_grid.py b/src/further_examples/project_euler/larg_prod_grid.py deleted file mode 100644 index 4af10c5..0000000 --- a/src/further_examples/project_euler/larg_prod_grid.py +++ /dev/null @@ -1,66 +0,0 @@ -#!/usr/bin/python3 -# mari von steinkirch @2013 -# steinkirch at gmail - -import string - -def get_grid(filename): - grid = [ [ 0 for i in range(20) ] for j in range(20) ] - with open(filename) as file: - for row, line in enumerate(file): - line.strip('\n') - for collumn, number in enumerate(line.split(' ')): - grid[row][collumn] = int(number) - return grid - - -def larg_prod_grid(grid): - row, col, larg_prod = 0, 0, 0 - up, down, left, right, diag1, diag2, diag3, diag4 = 0, 0, 0, 0, 0, 0, 0, 0 - while row < len(grid): - while col < len(grid[0]): - if col > 2: - up = grid[row][col] * grid[row][col-1] * grid[row][col-2] * grid[row][col-3] - if col < len(grid[0]) - 3: - down = grid[row][col] * grid[row][col+1] * grid[row][col+2] * grid[row][col+3] - if row > 2: - left = grid[row][col] * grid[row-1][col] * grid[row-2][col] * grid[row-3][col] - if row < len(grid) - 3: - right = grid[row][col] * grid[row+1][col] * grid[row+2][col] * grid[row+3][col] - - if col > 2 and row > 2: - diag1 = grid[row][col] * grid[row-1][col-1] * grid[row-2][col-2] * grid[row-3][col-3] - if col > 2 and row < len(grid) - 3: - diag2 = grid[row][col] * grid[row+1][col-1] * grid[row+2][col-2] * grid[row+3][col-3] - - if col < len(grid[0]) - 3 and row > 2: - diag3 = grid[row][col] * grid[row-1][col+1] * grid[row-2][col+2] * grid[row-3][col+3] - if col < len(grid[0]) -3 and row < len(grid) - 3: - down = grid[row][col] * grid[row+1][col+1] * grid[row+1][col+2] * grid[row+1][col+3] - - l1 = [up, down, left, right, diag1, diag2, diag3, diag4] - largest_prod_here = max(l1) - if largest_prod_here > larg_prod: - larg_prod = largest_prod_here - col += 1 - col = 0 - row += 1 - - return larg_prod - - -def main(): - import time - start = time.time() - - filename = 'larg_prod_grid.dat' - grid = get_grid(filename) - assert((grid[6][8], grid[7][9], grid[8][10], grid[9][11]) == (26, 63, 78, 14)) - print(larg_prod_grid(grid)) - - elapsed = (time.time() - start) - print('Tests Passed!\n It took %s seconds to run them.' % (elapsed)) - -if __name__ == '__main__': - main() - diff --git a/src/further_examples/project_euler/large_sum.dat b/src/further_examples/project_euler/large_sum.dat deleted file mode 100644 index 43b568e..0000000 --- a/src/further_examples/project_euler/large_sum.dat +++ /dev/null @@ -1,100 +0,0 @@ -37107287533902102798797998220837590246510135740250 -46376937677490009712648124896970078050417018260538 -74324986199524741059474233309513058123726617309629 -91942213363574161572522430563301811072406154908250 -23067588207539346171171980310421047513778063246676 -89261670696623633820136378418383684178734361726757 -28112879812849979408065481931592621691275889832738 -44274228917432520321923589422876796487670272189318 -47451445736001306439091167216856844588711603153276 -70386486105843025439939619828917593665686757934951 -62176457141856560629502157223196586755079324193331 -64906352462741904929101432445813822663347944758178 -92575867718337217661963751590579239728245598838407 -58203565325359399008402633568948830189458628227828 -80181199384826282014278194139940567587151170094390 -35398664372827112653829987240784473053190104293586 -86515506006295864861532075273371959191420517255829 -71693888707715466499115593487603532921714970056938 -54370070576826684624621495650076471787294438377604 -53282654108756828443191190634694037855217779295145 -36123272525000296071075082563815656710885258350721 -45876576172410976447339110607218265236877223636045 -17423706905851860660448207621209813287860733969412 -81142660418086830619328460811191061556940512689692 -51934325451728388641918047049293215058642563049483 -62467221648435076201727918039944693004732956340691 -15732444386908125794514089057706229429197107928209 -55037687525678773091862540744969844508330393682126 -18336384825330154686196124348767681297534375946515 -80386287592878490201521685554828717201219257766954 -78182833757993103614740356856449095527097864797581 -16726320100436897842553539920931837441497806860984 -48403098129077791799088218795327364475675590848030 -87086987551392711854517078544161852424320693150332 -59959406895756536782107074926966537676326235447210 -69793950679652694742597709739166693763042633987085 -41052684708299085211399427365734116182760315001271 -65378607361501080857009149939512557028198746004375 -35829035317434717326932123578154982629742552737307 -94953759765105305946966067683156574377167401875275 -88902802571733229619176668713819931811048770190271 -25267680276078003013678680992525463401061632866526 -36270218540497705585629946580636237993140746255962 -24074486908231174977792365466257246923322810917141 -91430288197103288597806669760892938638285025333403 -34413065578016127815921815005561868836468420090470 -23053081172816430487623791969842487255036638784583 -11487696932154902810424020138335124462181441773470 -63783299490636259666498587618221225225512486764533 -67720186971698544312419572409913959008952310058822 -95548255300263520781532296796249481641953868218774 -76085327132285723110424803456124867697064507995236 -37774242535411291684276865538926205024910326572967 -23701913275725675285653248258265463092207058596522 -29798860272258331913126375147341994889534765745501 -18495701454879288984856827726077713721403798879715 -38298203783031473527721580348144513491373226651381 -34829543829199918180278916522431027392251122869539 -40957953066405232632538044100059654939159879593635 -29746152185502371307642255121183693803580388584903 -41698116222072977186158236678424689157993532961922 -62467957194401269043877107275048102390895523597457 -23189706772547915061505504953922979530901129967519 -86188088225875314529584099251203829009407770775672 -11306739708304724483816533873502340845647058077308 -82959174767140363198008187129011875491310547126581 -97623331044818386269515456334926366572897563400500 -42846280183517070527831839425882145521227251250327 -55121603546981200581762165212827652751691296897789 -32238195734329339946437501907836945765883352399886 -75506164965184775180738168837861091527357929701337 -62177842752192623401942399639168044983993173312731 -32924185707147349566916674687634660915035914677504 -99518671430235219628894890102423325116913619626622 -73267460800591547471830798392868535206946944540724 -76841822524674417161514036427982273348055556214818 -97142617910342598647204516893989422179826088076852 -87783646182799346313767754307809363333018982642090 -10848802521674670883215120185883543223812876952786 -71329612474782464538636993009049310363619763878039 -62184073572399794223406235393808339651327408011116 -66627891981488087797941876876144230030984490851411 -60661826293682836764744779239180335110989069790714 -85786944089552990653640447425576083659976645795096 -66024396409905389607120198219976047599490197230297 -64913982680032973156037120041377903785566085089252 -16730939319872750275468906903707539413042652315011 -94809377245048795150954100921645863754710598436791 -78639167021187492431995700641917969777599028300699 -15368713711936614952811305876380278410754449733078 -40789923115535562561142322423255033685442488917353 -44889911501440648020369068063960672322193204149535 -41503128880339536053299340368006977710650566631954 -81234880673210146739058568557934581403627822703280 -82616570773948327592232845941706525094512325230608 -22918802058777319719839450180888072429661980811197 -77158542502016545090413245809786882778948721859617 -72107838435069186155435662884062257473692284509516 -20849603980134001723930671666823555245252804609722 -53503534226472524250874054075591789781264330331690 diff --git a/src/further_examples/project_euler/large_sum.py b/src/further_examples/project_euler/large_sum.py deleted file mode 100644 index 4d0ac69..0000000 --- a/src/further_examples/project_euler/large_sum.py +++ /dev/null @@ -1,25 +0,0 @@ -#!/usr/bin/python3 -# mari von steinkirch @2013 -# steinkirch at gmail - -def large_sum(filename): - sum_total, lines, numbers = 0, 0, 0 - with open(filename) as file: - for line in file: - sum_total += int(line.strip('\n')) - return str(sum_total)[0:10] - - -def main(): - import time - start = time.time() - - filename = 'large_sum.dat' - print(large_sum(filename)) - - elapsed = (time.time() - start) - print('Tests Passed!\n It took %s seconds to run them.' % (elapsed)) - -if __name__ == '__main__': - main() - diff --git a/src/further_examples/project_euler/largest_prime_factor.py b/src/further_examples/project_euler/largest_prime_factor.py deleted file mode 100644 index 0c8eb6b..0000000 --- a/src/further_examples/project_euler/largest_prime_factor.py +++ /dev/null @@ -1,41 +0,0 @@ -#!/usr/bin/python3 -#!/usr/bin/python3 - -def is_prime(n): - if n < 4 : return True - for i in range(2, int(n**0.5 + 1)): - if not n%i: return False - return True - - -def largest_prime_factor(n): - i = int(n**0.5 +1) - while i > 1 : - if not n%i and i&1: - if is_prime(i): return i - i -= 1 - return None - - -def largest_prime_factor_optimized(n): - factor = 2 - lastfactor = 1 - while n > 1: - if not n%factor: - lastfactor = factor - n = n//factor - while n%factor == 0: - n = n//factor - factor += 1 - return lastfactor - - -def test_largest_prime_factor(): - assert(largest_prime_factor(13195)== 29) - print(largest_prime_factor(600851475143)) - assert(largest_prime_factor_optimized(13195) == 29) - print(largest_prime_factor_optimized(600851475143)) - print('Tests Passed!') - -if __name__ == '__main__': - test_largest_prime_factor() diff --git a/src/further_examples/project_euler/largest_product_seq.py b/src/further_examples/project_euler/largest_product_seq.py deleted file mode 100644 index 65fefa2..0000000 --- a/src/further_examples/project_euler/largest_product_seq.py +++ /dev/null @@ -1,28 +0,0 @@ -#!/usr/bin/python3 -# mari von steinkirch @2013 -# steinkirch at gmail - - - -def largest_prod_seq(n): - result = 0 - for i in range(0, len(n)-4): - first = int(n[i]) - second = int(n[i+1]) - third = int(n[i+2]) - fourth = int(n[i+3]) - fifth = int(n[i+4]) - result_here = first*second*third*fourth*fifth - if result < result_here: - result = result_here - return result - - -def main(): - n = '7316717653133062491922511967442657474235534919493496983520312774506326239578318016984801869478851843858615607891129494954595017379583319528532088055111254069874715852386305071569329096329522744304355766896648950445244523161731856403098711121722383113622298934233803081353362766142828064444866452387493035890729629049156044077239071381051585930796086670172427121883998797908792274921901699720888093776657273330010533678812202354218097512545405947522435258490771167055601360483958644670632441572215539753697817977846174064955149290862569321978468622482839722413756570560574902614079729686524145351004748216637048440319989000889524345065854122758866688116427171479924442928230863465674813919123162824586178664583591245665294765456828489128831426076900422421902267105562632111110937054421750694165896040807198403850962455444362981230987879927244284909188845801561660979191338754992005240636899125607176060588611646710940507754100225698315520005593572972571636269561882670428252483600823257530420752963450' - print(largest_prod_seq(n)) - print('Tests Passed!') - -if __name__ == '__main__': - main() - diff --git a/src/further_examples/project_euler/lattice_paths.py b/src/further_examples/project_euler/lattice_paths.py deleted file mode 100644 index 8c4fb20..0000000 --- a/src/further_examples/project_euler/lattice_paths.py +++ /dev/null @@ -1,42 +0,0 @@ -#!/usr/bin/python3 -# mari von steinkirch @2013 -# steinkirch at gmail - -def lattice_paths(squares): - gridsize = squares+1 - grid = [[0 for i in range(gridsize)] for j in range(gridsize)] - row, col = 0, 0 - - while col < gridsize: - while row < gridsize: - - if row == 0 and col == 0: - grid[row][col] = 1 - - else: - if row == 0 and col != 0: - grid[row][col] += grid[row][col-1] - elif row != 0 and col == 0: - grid[row][col] += grid[row-1][col] - else: - grid[row][col] += grid[row][col-1] + grid[row-1][col] - - row += 1 - row = 0 - col += 1 - return grid[gridsize-1][gridsize-1] - - -def main(): - import time - start = time.time() - - assert(lattice_paths(2) == 6) - print(lattice_paths(20)) - - elapsed = (time.time() - start) - print('Tests Passed!\n It took %s seconds to run them.' % (elapsed)) - -if __name__ == '__main__': - main() - diff --git a/src/further_examples/project_euler/lexico_per.py b/src/further_examples/project_euler/lexico_per.py deleted file mode 100644 index 52a5ccb..0000000 --- a/src/further_examples/project_euler/lexico_per.py +++ /dev/null @@ -1,33 +0,0 @@ -#!/usr/bin/python3 -# mari von steinkirch @2013 -# steinkirch at gmail - -def perm_item(elements): - if len(elements) <= 1: - yield elements - else: - for (index, elmt) in enumerate(elements): - other_elmts = elements[:index]+elements[index+1:] - for permutation in perm_item(other_elmts): - yield [elmt] + permutation - - -def lex_perm(l1, n): - perm_list = list(perm_item(l1)) - return sorted(perm_list)[n-1] - - -def main(): - import time - start = time.time() - - l1 = [0,1,2,3,4,5,6,7,8,9] - n = 10**6 - print(lex_perm(l1, n)) - - elapsed = (time.time() - start) - print('Tests Passed!\n It took %s seconds to run them.' % (elapsed)) - -if __name__ == '__main__': - main() - diff --git a/src/further_examples/project_euler/long_collatz_seq.py b/src/further_examples/project_euler/long_collatz_seq.py deleted file mode 100644 index 70535e2..0000000 --- a/src/further_examples/project_euler/long_collatz_seq.py +++ /dev/null @@ -1,43 +0,0 @@ -#!/usr/bin/python3 -# mari von steinkirch @2013 -# steinkirch at gmail - -def find_coll_seq(n): - count = 1 - while n > 1: - if n%2 == 0: - n = n//2 - else: - n = 3*n +1 - count += 1 - return count - - -def find_longest_chain(limit): - longest, number = 0, 0 - start = 0 - while start <= limit: - size_chain = find_coll_seq(start) - if size_chain > longest: - longest = size_chain - number = start - start += 1 - - return (longest, number) - - - - -def main(): - import time - start = time.time() - - #print(find_longest_chain(13)) - print(find_longest_chain(10**6)) - - elapsed = (time.time() - start) - print('Tests Passed!\n It took %s seconds to run them.' % (elapsed)) - -if __name__ == '__main__': - main() - diff --git a/src/further_examples/project_euler/max_path_sum.dat b/src/further_examples/project_euler/max_path_sum.dat deleted file mode 100644 index e236c2f..0000000 --- a/src/further_examples/project_euler/max_path_sum.dat +++ /dev/null @@ -1,15 +0,0 @@ -75 -95 64 -17 47 82 -18 35 87 10 -20 04 82 47 65 -19 01 23 75 03 34 -88 02 77 73 07 63 67 -99 65 04 28 06 16 70 92 -41 41 26 56 83 40 80 70 33 -41 48 72 33 47 32 37 16 94 29 -53 71 44 65 25 43 91 52 97 51 14 -70 11 33 28 77 73 17 78 39 68 17 57 -91 71 52 38 17 14 91 43 58 50 27 29 48 -63 66 04 68 89 53 67 30 73 16 69 87 40 31 -04 62 98 27 23 09 70 98 73 93 38 53 60 04 23 diff --git a/src/further_examples/project_euler/max_path_sum.py b/src/further_examples/project_euler/max_path_sum.py deleted file mode 100644 index 955a40f..0000000 --- a/src/further_examples/project_euler/max_path_sum.py +++ /dev/null @@ -1,55 +0,0 @@ -#!/usr/bin/python3 -# mari von steinkirch @2013 -# steinkirch at gmail - -def max_path_sum(t): - root = t[0][0] - height, width, index, large_num = 1, 0, 0, 0 - max_sum = root - heights = len(t[:]) - - while height < heights: - values_here = t[height][index:index+2] - if values_here[0] > values_here[1]: - large_num = values_here[0] - else: - large_num = values_here[1] - index += 1 - max_sum += large_num - pivot = large_num - width, large_num = 0, 0 - height += 1 - - return max_sum - -def edit_input(filename): - output = [] - with open(filename) as file: - for line in file: - line = line.rstrip('\n') - output.append(line.split(' ')) - for i, l1 in enumerate(output): - for j, c in enumerate(output[i]): - output[i][j] = int(c) - return(output) - - - -def main(): - import time - start = time.time() - - filename = 'max_path_sum0.dat' - t1 = edit_input(filename) - print('Little pir: ',max_path_sum(t1)) - - filename = 'max_path_sum.dat' - t2 = edit_input(filename) - print('Big pir: ', max_path_sum(t2)) - - elapsed = (time.time() - start) - print('Tests Passed!\n It took %s seconds to run them.' % (elapsed)) - -if __name__ == '__main__': - main() - diff --git a/src/further_examples/project_euler/max_path_sum0.dat b/src/further_examples/project_euler/max_path_sum0.dat deleted file mode 100644 index 65ff300..0000000 --- a/src/further_examples/project_euler/max_path_sum0.dat +++ /dev/null @@ -1,4 +0,0 @@ -3 -7 4 -2 4 6 -8 5 9 3 diff --git a/src/further_examples/project_euler/multiples_of_3_and_5.py b/src/further_examples/project_euler/multiples_of_3_and_5.py deleted file mode 100644 index f63adf8..0000000 --- a/src/further_examples/project_euler/multiples_of_3_and_5.py +++ /dev/null @@ -1,22 +0,0 @@ -#!/usr/bin/python3 -# mari von steinkirch @2013 -# steinkirch at gmail - - -def mul3and5(n): - result = 0 - for num in range(1, n): - if num%3 == 0 or num%5 == 0: - result += num - return result - - - -def test_(): - assert(mul3and5(10) == 23) - print(mul3and5(1000)) - print('Tests Passed!') - -if __name__ == '__main__': - test_() - diff --git a/src/further_examples/project_euler/names.txt b/src/further_examples/project_euler/names.txt deleted file mode 100644 index 7b8986b..0000000 --- a/src/further_examples/project_euler/names.txt +++ /dev/null @@ -1 +0,0 @@ -"MARY","PATRICIA","LINDA","BARBARA","ELIZABETH","JENNIFER","MARIA","SUSAN","MARGARET","DOROTHY","LISA","NANCY","KAREN","BETTY","HELEN","SANDRA","DONNA","CAROL","RUTH","SHARON","MICHELLE","LAURA","SARAH","KIMBERLY","DEBORAH","JESSICA","SHIRLEY","CYNTHIA","ANGELA","MELISSA","BRENDA","AMY","ANNA","REBECCA","VIRGINIA","KATHLEEN","PAMELA","MARTHA","DEBRA","AMANDA","STEPHANIE","CAROLYN","CHRISTINE","MARIE","JANET","CATHERINE","FRANCES","ANN","JOYCE","DIANE","ALICE","JULIE","HEATHER","TERESA","DORIS","GLORIA","EVELYN","JEAN","CHERYL","MILDRED","KATHERINE","JOAN","ASHLEY","JUDITH","ROSE","JANICE","KELLY","NICOLE","JUDY","CHRISTINA","KATHY","THERESA","BEVERLY","DENISE","TAMMY","IRENE","JANE","LORI","RACHEL","MARILYN","ANDREA","KATHRYN","LOUISE","SARA","ANNE","JACQUELINE","WANDA","BONNIE","JULIA","RUBY","LOIS","TINA","PHYLLIS","NORMA","PAULA","DIANA","ANNIE","LILLIAN","EMILY","ROBIN","PEGGY","CRYSTAL","GLADYS","RITA","DAWN","CONNIE","FLORENCE","TRACY","EDNA","TIFFANY","CARMEN","ROSA","CINDY","GRACE","WENDY","VICTORIA","EDITH","KIM","SHERRY","SYLVIA","JOSEPHINE","THELMA","SHANNON","SHEILA","ETHEL","ELLEN","ELAINE","MARJORIE","CARRIE","CHARLOTTE","MONICA","ESTHER","PAULINE","EMMA","JUANITA","ANITA","RHONDA","HAZEL","AMBER","EVA","DEBBIE","APRIL","LESLIE","CLARA","LUCILLE","JAMIE","JOANNE","ELEANOR","VALERIE","DANIELLE","MEGAN","ALICIA","SUZANNE","MICHELE","GAIL","BERTHA","DARLENE","VERONICA","JILL","ERIN","GERALDINE","LAUREN","CATHY","JOANN","LORRAINE","LYNN","SALLY","REGINA","ERICA","BEATRICE","DOLORES","BERNICE","AUDREY","YVONNE","ANNETTE","JUNE","SAMANTHA","MARION","DANA","STACY","ANA","RENEE","IDA","VIVIAN","ROBERTA","HOLLY","BRITTANY","MELANIE","LORETTA","YOLANDA","JEANETTE","LAURIE","KATIE","KRISTEN","VANESSA","ALMA","SUE","ELSIE","BETH","JEANNE","VICKI","CARLA","TARA","ROSEMARY","EILEEN","TERRI","GERTRUDE","LUCY","TONYA","ELLA","STACEY","WILMA","GINA","KRISTIN","JESSIE","NATALIE","AGNES","VERA","WILLIE","CHARLENE","BESSIE","DELORES","MELINDA","PEARL","ARLENE","MAUREEN","COLLEEN","ALLISON","TAMARA","JOY","GEORGIA","CONSTANCE","LILLIE","CLAUDIA","JACKIE","MARCIA","TANYA","NELLIE","MINNIE","MARLENE","HEIDI","GLENDA","LYDIA","VIOLA","COURTNEY","MARIAN","STELLA","CAROLINE","DORA","JO","VICKIE","MATTIE","TERRY","MAXINE","IRMA","MABEL","MARSHA","MYRTLE","LENA","CHRISTY","DEANNA","PATSY","HILDA","GWENDOLYN","JENNIE","NORA","MARGIE","NINA","CASSANDRA","LEAH","PENNY","KAY","PRISCILLA","NAOMI","CAROLE","BRANDY","OLGA","BILLIE","DIANNE","TRACEY","LEONA","JENNY","FELICIA","SONIA","MIRIAM","VELMA","BECKY","BOBBIE","VIOLET","KRISTINA","TONI","MISTY","MAE","SHELLY","DAISY","RAMONA","SHERRI","ERIKA","KATRINA","CLAIRE","LINDSEY","LINDSAY","GENEVA","GUADALUPE","BELINDA","MARGARITA","SHERYL","CORA","FAYE","ADA","NATASHA","SABRINA","ISABEL","MARGUERITE","HATTIE","HARRIET","MOLLY","CECILIA","KRISTI","BRANDI","BLANCHE","SANDY","ROSIE","JOANNA","IRIS","EUNICE","ANGIE","INEZ","LYNDA","MADELINE","AMELIA","ALBERTA","GENEVIEVE","MONIQUE","JODI","JANIE","MAGGIE","KAYLA","SONYA","JAN","LEE","KRISTINE","CANDACE","FANNIE","MARYANN","OPAL","ALISON","YVETTE","MELODY","LUZ","SUSIE","OLIVIA","FLORA","SHELLEY","KRISTY","MAMIE","LULA","LOLA","VERNA","BEULAH","ANTOINETTE","CANDICE","JUANA","JEANNETTE","PAM","KELLI","HANNAH","WHITNEY","BRIDGET","KARLA","CELIA","LATOYA","PATTY","SHELIA","GAYLE","DELLA","VICKY","LYNNE","SHERI","MARIANNE","KARA","JACQUELYN","ERMA","BLANCA","MYRA","LETICIA","PAT","KRISTA","ROXANNE","ANGELICA","JOHNNIE","ROBYN","FRANCIS","ADRIENNE","ROSALIE","ALEXANDRA","BROOKE","BETHANY","SADIE","BERNADETTE","TRACI","JODY","KENDRA","JASMINE","NICHOLE","RACHAEL","CHELSEA","MABLE","ERNESTINE","MURIEL","MARCELLA","ELENA","KRYSTAL","ANGELINA","NADINE","KARI","ESTELLE","DIANNA","PAULETTE","LORA","MONA","DOREEN","ROSEMARIE","ANGEL","DESIREE","ANTONIA","HOPE","GINGER","JANIS","BETSY","CHRISTIE","FREDA","MERCEDES","MEREDITH","LYNETTE","TERI","CRISTINA","EULA","LEIGH","MEGHAN","SOPHIA","ELOISE","ROCHELLE","GRETCHEN","CECELIA","RAQUEL","HENRIETTA","ALYSSA","JANA","KELLEY","GWEN","KERRY","JENNA","TRICIA","LAVERNE","OLIVE","ALEXIS","TASHA","SILVIA","ELVIRA","CASEY","DELIA","SOPHIE","KATE","PATTI","LORENA","KELLIE","SONJA","LILA","LANA","DARLA","MAY","MINDY","ESSIE","MANDY","LORENE","ELSA","JOSEFINA","JEANNIE","MIRANDA","DIXIE","LUCIA","MARTA","FAITH","LELA","JOHANNA","SHARI","CAMILLE","TAMI","SHAWNA","ELISA","EBONY","MELBA","ORA","NETTIE","TABITHA","OLLIE","JAIME","WINIFRED","KRISTIE","MARINA","ALISHA","AIMEE","RENA","MYRNA","MARLA","TAMMIE","LATASHA","BONITA","PATRICE","RONDA","SHERRIE","ADDIE","FRANCINE","DELORIS","STACIE","ADRIANA","CHERI","SHELBY","ABIGAIL","CELESTE","JEWEL","CARA","ADELE","REBEKAH","LUCINDA","DORTHY","CHRIS","EFFIE","TRINA","REBA","SHAWN","SALLIE","AURORA","LENORA","ETTA","LOTTIE","KERRI","TRISHA","NIKKI","ESTELLA","FRANCISCA","JOSIE","TRACIE","MARISSA","KARIN","BRITTNEY","JANELLE","LOURDES","LAUREL","HELENE","FERN","ELVA","CORINNE","KELSEY","INA","BETTIE","ELISABETH","AIDA","CAITLIN","INGRID","IVA","EUGENIA","CHRISTA","GOLDIE","CASSIE","MAUDE","JENIFER","THERESE","FRANKIE","DENA","LORNA","JANETTE","LATONYA","CANDY","MORGAN","CONSUELO","TAMIKA","ROSETTA","DEBORA","CHERIE","POLLY","DINA","JEWELL","FAY","JILLIAN","DOROTHEA","NELL","TRUDY","ESPERANZA","PATRICA","KIMBERLEY","SHANNA","HELENA","CAROLINA","CLEO","STEFANIE","ROSARIO","OLA","JANINE","MOLLIE","LUPE","ALISA","LOU","MARIBEL","SUSANNE","BETTE","SUSANA","ELISE","CECILE","ISABELLE","LESLEY","JOCELYN","PAIGE","JONI","RACHELLE","LEOLA","DAPHNE","ALTA","ESTER","PETRA","GRACIELA","IMOGENE","JOLENE","KEISHA","LACEY","GLENNA","GABRIELA","KERI","URSULA","LIZZIE","KIRSTEN","SHANA","ADELINE","MAYRA","JAYNE","JACLYN","GRACIE","SONDRA","CARMELA","MARISA","ROSALIND","CHARITY","TONIA","BEATRIZ","MARISOL","CLARICE","JEANINE","SHEENA","ANGELINE","FRIEDA","LILY","ROBBIE","SHAUNA","MILLIE","CLAUDETTE","CATHLEEN","ANGELIA","GABRIELLE","AUTUMN","KATHARINE","SUMMER","JODIE","STACI","LEA","CHRISTI","JIMMIE","JUSTINE","ELMA","LUELLA","MARGRET","DOMINIQUE","SOCORRO","RENE","MARTINA","MARGO","MAVIS","CALLIE","BOBBI","MARITZA","LUCILE","LEANNE","JEANNINE","DEANA","AILEEN","LORIE","LADONNA","WILLA","MANUELA","GALE","SELMA","DOLLY","SYBIL","ABBY","LARA","DALE","IVY","DEE","WINNIE","MARCY","LUISA","JERI","MAGDALENA","OFELIA","MEAGAN","AUDRA","MATILDA","LEILA","CORNELIA","BIANCA","SIMONE","BETTYE","RANDI","VIRGIE","LATISHA","BARBRA","GEORGINA","ELIZA","LEANN","BRIDGETTE","RHODA","HALEY","ADELA","NOLA","BERNADINE","FLOSSIE","ILA","GRETA","RUTHIE","NELDA","MINERVA","LILLY","TERRIE","LETHA","HILARY","ESTELA","VALARIE","BRIANNA","ROSALYN","EARLINE","CATALINA","AVA","MIA","CLARISSA","LIDIA","CORRINE","ALEXANDRIA","CONCEPCION","TIA","SHARRON","RAE","DONA","ERICKA","JAMI","ELNORA","CHANDRA","LENORE","NEVA","MARYLOU","MELISA","TABATHA","SERENA","AVIS","ALLIE","SOFIA","JEANIE","ODESSA","NANNIE","HARRIETT","LORAINE","PENELOPE","MILAGROS","EMILIA","BENITA","ALLYSON","ASHLEE","TANIA","TOMMIE","ESMERALDA","KARINA","EVE","PEARLIE","ZELMA","MALINDA","NOREEN","TAMEKA","SAUNDRA","HILLARY","AMIE","ALTHEA","ROSALINDA","JORDAN","LILIA","ALANA","GAY","CLARE","ALEJANDRA","ELINOR","MICHAEL","LORRIE","JERRI","DARCY","EARNESTINE","CARMELLA","TAYLOR","NOEMI","MARCIE","LIZA","ANNABELLE","LOUISA","EARLENE","MALLORY","CARLENE","NITA","SELENA","TANISHA","KATY","JULIANNE","JOHN","LAKISHA","EDWINA","MARICELA","MARGERY","KENYA","DOLLIE","ROXIE","ROSLYN","KATHRINE","NANETTE","CHARMAINE","LAVONNE","ILENE","KRIS","TAMMI","SUZETTE","CORINE","KAYE","JERRY","MERLE","CHRYSTAL","LINA","DEANNE","LILIAN","JULIANA","ALINE","LUANN","KASEY","MARYANNE","EVANGELINE","COLETTE","MELVA","LAWANDA","YESENIA","NADIA","MADGE","KATHIE","EDDIE","OPHELIA","VALERIA","NONA","MITZI","MARI","GEORGETTE","CLAUDINE","FRAN","ALISSA","ROSEANN","LAKEISHA","SUSANNA","REVA","DEIDRE","CHASITY","SHEREE","CARLY","JAMES","ELVIA","ALYCE","DEIRDRE","GENA","BRIANA","ARACELI","KATELYN","ROSANNE","WENDI","TESSA","BERTA","MARVA","IMELDA","MARIETTA","MARCI","LEONOR","ARLINE","SASHA","MADELYN","JANNA","JULIETTE","DEENA","AURELIA","JOSEFA","AUGUSTA","LILIANA","YOUNG","CHRISTIAN","LESSIE","AMALIA","SAVANNAH","ANASTASIA","VILMA","NATALIA","ROSELLA","LYNNETTE","CORINA","ALFREDA","LEANNA","CAREY","AMPARO","COLEEN","TAMRA","AISHA","WILDA","KARYN","CHERRY","QUEEN","MAURA","MAI","EVANGELINA","ROSANNA","HALLIE","ERNA","ENID","MARIANA","LACY","JULIET","JACKLYN","FREIDA","MADELEINE","MARA","HESTER","CATHRYN","LELIA","CASANDRA","BRIDGETT","ANGELITA","JANNIE","DIONNE","ANNMARIE","KATINA","BERYL","PHOEBE","MILLICENT","KATHERYN","DIANN","CARISSA","MARYELLEN","LIZ","LAURI","HELGA","GILDA","ADRIAN","RHEA","MARQUITA","HOLLIE","TISHA","TAMERA","ANGELIQUE","FRANCESCA","BRITNEY","KAITLIN","LOLITA","FLORINE","ROWENA","REYNA","TWILA","FANNY","JANELL","INES","CONCETTA","BERTIE","ALBA","BRIGITTE","ALYSON","VONDA","PANSY","ELBA","NOELLE","LETITIA","KITTY","DEANN","BRANDIE","LOUELLA","LETA","FELECIA","SHARLENE","LESA","BEVERLEY","ROBERT","ISABELLA","HERMINIA","TERRA","CELINA","TORI","OCTAVIA","JADE","DENICE","GERMAINE","SIERRA","MICHELL","CORTNEY","NELLY","DORETHA","SYDNEY","DEIDRA","MONIKA","LASHONDA","JUDI","CHELSEY","ANTIONETTE","MARGOT","BOBBY","ADELAIDE","NAN","LEEANN","ELISHA","DESSIE","LIBBY","KATHI","GAYLA","LATANYA","MINA","MELLISA","KIMBERLEE","JASMIN","RENAE","ZELDA","ELDA","MA","JUSTINA","GUSSIE","EMILIE","CAMILLA","ABBIE","ROCIO","KAITLYN","JESSE","EDYTHE","ASHLEIGH","SELINA","LAKESHA","GERI","ALLENE","PAMALA","MICHAELA","DAYNA","CARYN","ROSALIA","SUN","JACQULINE","REBECA","MARYBETH","KRYSTLE","IOLA","DOTTIE","BENNIE","BELLE","AUBREY","GRISELDA","ERNESTINA","ELIDA","ADRIANNE","DEMETRIA","DELMA","CHONG","JAQUELINE","DESTINY","ARLEEN","VIRGINA","RETHA","FATIMA","TILLIE","ELEANORE","CARI","TREVA","BIRDIE","WILHELMINA","ROSALEE","MAURINE","LATRICE","YONG","JENA","TARYN","ELIA","DEBBY","MAUDIE","JEANNA","DELILAH","CATRINA","SHONDA","HORTENCIA","THEODORA","TERESITA","ROBBIN","DANETTE","MARYJANE","FREDDIE","DELPHINE","BRIANNE","NILDA","DANNA","CINDI","BESS","IONA","HANNA","ARIEL","WINONA","VIDA","ROSITA","MARIANNA","WILLIAM","RACHEAL","GUILLERMINA","ELOISA","CELESTINE","CAREN","MALISSA","LONA","CHANTEL","SHELLIE","MARISELA","LEORA","AGATHA","SOLEDAD","MIGDALIA","IVETTE","CHRISTEN","ATHENA","JANEL","CHLOE","VEDA","PATTIE","TESSIE","TERA","MARILYNN","LUCRETIA","KARRIE","DINAH","DANIELA","ALECIA","ADELINA","VERNICE","SHIELA","PORTIA","MERRY","LASHAWN","DEVON","DARA","TAWANA","OMA","VERDA","CHRISTIN","ALENE","ZELLA","SANDI","RAFAELA","MAYA","KIRA","CANDIDA","ALVINA","SUZAN","SHAYLA","LYN","LETTIE","ALVA","SAMATHA","ORALIA","MATILDE","MADONNA","LARISSA","VESTA","RENITA","INDIA","DELOIS","SHANDA","PHILLIS","LORRI","ERLINDA","CRUZ","CATHRINE","BARB","ZOE","ISABELL","IONE","GISELA","CHARLIE","VALENCIA","ROXANNA","MAYME","KISHA","ELLIE","MELLISSA","DORRIS","DALIA","BELLA","ANNETTA","ZOILA","RETA","REINA","LAURETTA","KYLIE","CHRISTAL","PILAR","CHARLA","ELISSA","TIFFANI","TANA","PAULINA","LEOTA","BREANNA","JAYME","CARMEL","VERNELL","TOMASA","MANDI","DOMINGA","SANTA","MELODIE","LURA","ALEXA","TAMELA","RYAN","MIRNA","KERRIE","VENUS","NOEL","FELICITA","CRISTY","CARMELITA","BERNIECE","ANNEMARIE","TIARA","ROSEANNE","MISSY","CORI","ROXANA","PRICILLA","KRISTAL","JUNG","ELYSE","HAYDEE","ALETHA","BETTINA","MARGE","GILLIAN","FILOMENA","CHARLES","ZENAIDA","HARRIETTE","CARIDAD","VADA","UNA","ARETHA","PEARLINE","MARJORY","MARCELA","FLOR","EVETTE","ELOUISE","ALINA","TRINIDAD","DAVID","DAMARIS","CATHARINE","CARROLL","BELVA","NAKIA","MARLENA","LUANNE","LORINE","KARON","DORENE","DANITA","BRENNA","TATIANA","SAMMIE","LOUANN","LOREN","JULIANNA","ANDRIA","PHILOMENA","LUCILA","LEONORA","DOVIE","ROMONA","MIMI","JACQUELIN","GAYE","TONJA","MISTI","JOE","GENE","CHASTITY","STACIA","ROXANN","MICAELA","NIKITA","MEI","VELDA","MARLYS","JOHNNA","AURA","LAVERN","IVONNE","HAYLEY","NICKI","MAJORIE","HERLINDA","GEORGE","ALPHA","YADIRA","PERLA","GREGORIA","DANIEL","ANTONETTE","SHELLI","MOZELLE","MARIAH","JOELLE","CORDELIA","JOSETTE","CHIQUITA","TRISTA","LOUIS","LAQUITA","GEORGIANA","CANDI","SHANON","LONNIE","HILDEGARD","CECIL","VALENTINA","STEPHANY","MAGDA","KAROL","GERRY","GABRIELLA","TIANA","ROMA","RICHELLE","RAY","PRINCESS","OLETA","JACQUE","IDELLA","ALAINA","SUZANNA","JOVITA","BLAIR","TOSHA","RAVEN","NEREIDA","MARLYN","KYLA","JOSEPH","DELFINA","TENA","STEPHENIE","SABINA","NATHALIE","MARCELLE","GERTIE","DARLEEN","THEA","SHARONDA","SHANTEL","BELEN","VENESSA","ROSALINA","ONA","GENOVEVA","COREY","CLEMENTINE","ROSALBA","RENATE","RENATA","MI","IVORY","GEORGIANNA","FLOY","DORCAS","ARIANA","TYRA","THEDA","MARIAM","JULI","JESICA","DONNIE","VIKKI","VERLA","ROSELYN","MELVINA","JANNETTE","GINNY","DEBRAH","CORRIE","ASIA","VIOLETA","MYRTIS","LATRICIA","COLLETTE","CHARLEEN","ANISSA","VIVIANA","TWYLA","PRECIOUS","NEDRA","LATONIA","LAN","HELLEN","FABIOLA","ANNAMARIE","ADELL","SHARYN","CHANTAL","NIKI","MAUD","LIZETTE","LINDY","KIA","KESHA","JEANA","DANELLE","CHARLINE","CHANEL","CARROL","VALORIE","LIA","DORTHA","CRISTAL","SUNNY","LEONE","LEILANI","GERRI","DEBI","ANDRA","KESHIA","IMA","EULALIA","EASTER","DULCE","NATIVIDAD","LINNIE","KAMI","GEORGIE","CATINA","BROOK","ALDA","WINNIFRED","SHARLA","RUTHANN","MEAGHAN","MAGDALENE","LISSETTE","ADELAIDA","VENITA","TRENA","SHIRLENE","SHAMEKA","ELIZEBETH","DIAN","SHANTA","MICKEY","LATOSHA","CARLOTTA","WINDY","SOON","ROSINA","MARIANN","LEISA","JONNIE","DAWNA","CATHIE","BILLY","ASTRID","SIDNEY","LAUREEN","JANEEN","HOLLI","FAWN","VICKEY","TERESSA","SHANTE","RUBYE","MARCELINA","CHANDA","CARY","TERESE","SCARLETT","MARTY","MARNIE","LULU","LISETTE","JENIFFER","ELENOR","DORINDA","DONITA","CARMAN","BERNITA","ALTAGRACIA","ALETA","ADRIANNA","ZORAIDA","RONNIE","NICOLA","LYNDSEY","KENDALL","JANINA","CHRISSY","AMI","STARLA","PHYLIS","PHUONG","KYRA","CHARISSE","BLANCH","SANJUANITA","RONA","NANCI","MARILEE","MARANDA","CORY","BRIGETTE","SANJUANA","MARITA","KASSANDRA","JOYCELYN","IRA","FELIPA","CHELSIE","BONNY","MIREYA","LORENZA","KYONG","ILEANA","CANDELARIA","TONY","TOBY","SHERIE","OK","MARK","LUCIE","LEATRICE","LAKESHIA","GERDA","EDIE","BAMBI","MARYLIN","LAVON","HORTENSE","GARNET","EVIE","TRESSA","SHAYNA","LAVINA","KYUNG","JEANETTA","SHERRILL","SHARA","PHYLISS","MITTIE","ANABEL","ALESIA","THUY","TAWANDA","RICHARD","JOANIE","TIFFANIE","LASHANDA","KARISSA","ENRIQUETA","DARIA","DANIELLA","CORINNA","ALANNA","ABBEY","ROXANE","ROSEANNA","MAGNOLIA","LIDA","KYLE","JOELLEN","ERA","CORAL","CARLEEN","TRESA","PEGGIE","NOVELLA","NILA","MAYBELLE","JENELLE","CARINA","NOVA","MELINA","MARQUERITE","MARGARETTE","JOSEPHINA","EVONNE","DEVIN","CINTHIA","ALBINA","TOYA","TAWNYA","SHERITA","SANTOS","MYRIAM","LIZABETH","LISE","KEELY","JENNI","GISELLE","CHERYLE","ARDITH","ARDIS","ALESHA","ADRIANE","SHAINA","LINNEA","KAROLYN","HONG","FLORIDA","FELISHA","DORI","DARCI","ARTIE","ARMIDA","ZOLA","XIOMARA","VERGIE","SHAMIKA","NENA","NANNETTE","MAXIE","LOVIE","JEANE","JAIMIE","INGE","FARRAH","ELAINA","CAITLYN","STARR","FELICITAS","CHERLY","CARYL","YOLONDA","YASMIN","TEENA","PRUDENCE","PENNIE","NYDIA","MACKENZIE","ORPHA","MARVEL","LIZBETH","LAURETTE","JERRIE","HERMELINDA","CAROLEE","TIERRA","MIRIAN","META","MELONY","KORI","JENNETTE","JAMILA","ENA","ANH","YOSHIKO","SUSANNAH","SALINA","RHIANNON","JOLEEN","CRISTINE","ASHTON","ARACELY","TOMEKA","SHALONDA","MARTI","LACIE","KALA","JADA","ILSE","HAILEY","BRITTANI","ZONA","SYBLE","SHERRYL","RANDY","NIDIA","MARLO","KANDICE","KANDI","DEB","DEAN","AMERICA","ALYCIA","TOMMY","RONNA","NORENE","MERCY","JOSE","INGEBORG","GIOVANNA","GEMMA","CHRISTEL","AUDRY","ZORA","VITA","VAN","TRISH","STEPHAINE","SHIRLEE","SHANIKA","MELONIE","MAZIE","JAZMIN","INGA","HOA","HETTIE","GERALYN","FONDA","ESTRELLA","ADELLA","SU","SARITA","RINA","MILISSA","MARIBETH","GOLDA","EVON","ETHELYN","ENEDINA","CHERISE","CHANA","VELVA","TAWANNA","SADE","MIRTA","LI","KARIE","JACINTA","ELNA","DAVINA","CIERRA","ASHLIE","ALBERTHA","TANESHA","STEPHANI","NELLE","MINDI","LU","LORINDA","LARUE","FLORENE","DEMETRA","DEDRA","CIARA","CHANTELLE","ASHLY","SUZY","ROSALVA","NOELIA","LYDA","LEATHA","KRYSTYNA","KRISTAN","KARRI","DARLINE","DARCIE","CINDA","CHEYENNE","CHERRIE","AWILDA","ALMEDA","ROLANDA","LANETTE","JERILYN","GISELE","EVALYN","CYNDI","CLETA","CARIN","ZINA","ZENA","VELIA","TANIKA","PAUL","CHARISSA","THOMAS","TALIA","MARGARETE","LAVONDA","KAYLEE","KATHLENE","JONNA","IRENA","ILONA","IDALIA","CANDIS","CANDANCE","BRANDEE","ANITRA","ALIDA","SIGRID","NICOLETTE","MARYJO","LINETTE","HEDWIG","CHRISTIANA","CASSIDY","ALEXIA","TRESSIE","MODESTA","LUPITA","LITA","GLADIS","EVELIA","DAVIDA","CHERRI","CECILY","ASHELY","ANNABEL","AGUSTINA","WANITA","SHIRLY","ROSAURA","HULDA","EUN","BAILEY","YETTA","VERONA","THOMASINA","SIBYL","SHANNAN","MECHELLE","LUE","LEANDRA","LANI","KYLEE","KANDY","JOLYNN","FERNE","EBONI","CORENE","ALYSIA","ZULA","NADA","MOIRA","LYNDSAY","LORRETTA","JUAN","JAMMIE","HORTENSIA","GAYNELL","CAMERON","ADRIA","VINA","VICENTA","TANGELA","STEPHINE","NORINE","NELLA","LIANA","LESLEE","KIMBERELY","ILIANA","GLORY","FELICA","EMOGENE","ELFRIEDE","EDEN","EARTHA","CARMA","BEA","OCIE","MARRY","LENNIE","KIARA","JACALYN","CARLOTA","ARIELLE","YU","STAR","OTILIA","KIRSTIN","KACEY","JOHNETTA","JOEY","JOETTA","JERALDINE","JAUNITA","ELANA","DORTHEA","CAMI","AMADA","ADELIA","VERNITA","TAMAR","SIOBHAN","RENEA","RASHIDA","OUIDA","ODELL","NILSA","MERYL","KRISTYN","JULIETA","DANICA","BREANNE","AUREA","ANGLEA","SHERRON","ODETTE","MALIA","LORELEI","LIN","LEESA","KENNA","KATHLYN","FIONA","CHARLETTE","SUZIE","SHANTELL","SABRA","RACQUEL","MYONG","MIRA","MARTINE","LUCIENNE","LAVADA","JULIANN","JOHNIE","ELVERA","DELPHIA","CLAIR","CHRISTIANE","CHAROLETTE","CARRI","AUGUSTINE","ASHA","ANGELLA","PAOLA","NINFA","LEDA","LAI","EDA","SUNSHINE","STEFANI","SHANELL","PALMA","MACHELLE","LISSA","KECIA","KATHRYNE","KARLENE","JULISSA","JETTIE","JENNIFFER","HUI","CORRINA","CHRISTOPHER","CAROLANN","ALENA","TESS","ROSARIA","MYRTICE","MARYLEE","LIANE","KENYATTA","JUDIE","JANEY","IN","ELMIRA","ELDORA","DENNA","CRISTI","CATHI","ZAIDA","VONNIE","VIVA","VERNIE","ROSALINE","MARIELA","LUCIANA","LESLI","KARAN","FELICE","DENEEN","ADINA","WYNONA","TARSHA","SHERON","SHASTA","SHANITA","SHANI","SHANDRA","RANDA","PINKIE","PARIS","NELIDA","MARILOU","LYLA","LAURENE","LACI","JOI","JANENE","DOROTHA","DANIELE","DANI","CAROLYNN","CARLYN","BERENICE","AYESHA","ANNELIESE","ALETHEA","THERSA","TAMIKO","RUFINA","OLIVA","MOZELL","MARYLYN","MADISON","KRISTIAN","KATHYRN","KASANDRA","KANDACE","JANAE","GABRIEL","DOMENICA","DEBBRA","DANNIELLE","CHUN","BUFFY","BARBIE","ARCELIA","AJA","ZENOBIA","SHAREN","SHAREE","PATRICK","PAGE","MY","LAVINIA","KUM","KACIE","JACKELINE","HUONG","FELISA","EMELIA","ELEANORA","CYTHIA","CRISTIN","CLYDE","CLARIBEL","CARON","ANASTACIA","ZULMA","ZANDRA","YOKO","TENISHA","SUSANN","SHERILYN","SHAY","SHAWANDA","SABINE","ROMANA","MATHILDA","LINSEY","KEIKO","JOANA","ISELA","GRETTA","GEORGETTA","EUGENIE","DUSTY","DESIRAE","DELORA","CORAZON","ANTONINA","ANIKA","WILLENE","TRACEE","TAMATHA","REGAN","NICHELLE","MICKIE","MAEGAN","LUANA","LANITA","KELSIE","EDELMIRA","BREE","AFTON","TEODORA","TAMIE","SHENA","MEG","LINH","KELI","KACI","DANYELLE","BRITT","ARLETTE","ALBERTINE","ADELLE","TIFFINY","STORMY","SIMONA","NUMBERS","NICOLASA","NICHOL","NIA","NAKISHA","MEE","MAIRA","LOREEN","KIZZY","JOHNNY","JAY","FALLON","CHRISTENE","BOBBYE","ANTHONY","YING","VINCENZA","TANJA","RUBIE","RONI","QUEENIE","MARGARETT","KIMBERLI","IRMGARD","IDELL","HILMA","EVELINA","ESTA","EMILEE","DENNISE","DANIA","CARL","CARIE","ANTONIO","WAI","SANG","RISA","RIKKI","PARTICIA","MUI","MASAKO","MARIO","LUVENIA","LOREE","LONI","LIEN","KEVIN","GIGI","FLORENCIA","DORIAN","DENITA","DALLAS","CHI","BILLYE","ALEXANDER","TOMIKA","SHARITA","RANA","NIKOLE","NEOMA","MARGARITE","MADALYN","LUCINA","LAILA","KALI","JENETTE","GABRIELE","EVELYNE","ELENORA","CLEMENTINA","ALEJANDRINA","ZULEMA","VIOLETTE","VANNESSA","THRESA","RETTA","PIA","PATIENCE","NOELLA","NICKIE","JONELL","DELTA","CHUNG","CHAYA","CAMELIA","BETHEL","ANYA","ANDREW","THANH","SUZANN","SPRING","SHU","MILA","LILLA","LAVERNA","KEESHA","KATTIE","GIA","GEORGENE","EVELINE","ESTELL","ELIZBETH","VIVIENNE","VALLIE","TRUDIE","STEPHANE","MICHEL","MAGALY","MADIE","KENYETTA","KARREN","JANETTA","HERMINE","HARMONY","DRUCILLA","DEBBI","CELESTINA","CANDIE","BRITNI","BECKIE","AMINA","ZITA","YUN","YOLANDE","VIVIEN","VERNETTA","TRUDI","SOMMER","PEARLE","PATRINA","OSSIE","NICOLLE","LOYCE","LETTY","LARISA","KATHARINA","JOSELYN","JONELLE","JENELL","IESHA","HEIDE","FLORINDA","FLORENTINA","FLO","ELODIA","DORINE","BRUNILDA","BRIGID","ASHLI","ARDELLA","TWANA","THU","TARAH","SUNG","SHEA","SHAVON","SHANE","SERINA","RAYNA","RAMONITA","NGA","MARGURITE","LUCRECIA","KOURTNEY","KATI","JESUS","JESENIA","DIAMOND","CRISTA","AYANA","ALICA","ALIA","VINNIE","SUELLEN","ROMELIA","RACHELL","PIPER","OLYMPIA","MICHIKO","KATHALEEN","JOLIE","JESSI","JANESSA","HANA","HA","ELEASE","CARLETTA","BRITANY","SHONA","SALOME","ROSAMOND","REGENA","RAINA","NGOC","NELIA","LOUVENIA","LESIA","LATRINA","LATICIA","LARHONDA","JINA","JACKI","HOLLIS","HOLLEY","EMMY","DEEANN","CORETTA","ARNETTA","VELVET","THALIA","SHANICE","NETA","MIKKI","MICKI","LONNA","LEANA","LASHUNDA","KILEY","JOYE","JACQULYN","IGNACIA","HYUN","HIROKO","HENRY","HENRIETTE","ELAYNE","DELINDA","DARNELL","DAHLIA","COREEN","CONSUELA","CONCHITA","CELINE","BABETTE","AYANNA","ANETTE","ALBERTINA","SKYE","SHAWNEE","SHANEKA","QUIANA","PAMELIA","MIN","MERRI","MERLENE","MARGIT","KIESHA","KIERA","KAYLENE","JODEE","JENISE","ERLENE","EMMIE","ELSE","DARYL","DALILA","DAISEY","CODY","CASIE","BELIA","BABARA","VERSIE","VANESA","SHELBA","SHAWNDA","SAM","NORMAN","NIKIA","NAOMA","MARNA","MARGERET","MADALINE","LAWANA","KINDRA","JUTTA","JAZMINE","JANETT","HANNELORE","GLENDORA","GERTRUD","GARNETT","FREEDA","FREDERICA","FLORANCE","FLAVIA","DENNIS","CARLINE","BEVERLEE","ANJANETTE","VALDA","TRINITY","TAMALA","STEVIE","SHONNA","SHA","SARINA","ONEIDA","MICAH","MERILYN","MARLEEN","LURLINE","LENNA","KATHERIN","JIN","JENI","HAE","GRACIA","GLADY","FARAH","ERIC","ENOLA","EMA","DOMINQUE","DEVONA","DELANA","CECILA","CAPRICE","ALYSHA","ALI","ALETHIA","VENA","THERESIA","TAWNY","SONG","SHAKIRA","SAMARA","SACHIKO","RACHELE","PAMELLA","NICKY","MARNI","MARIEL","MAREN","MALISA","LIGIA","LERA","LATORIA","LARAE","KIMBER","KATHERN","KAREY","JENNEFER","JANETH","HALINA","FREDIA","DELISA","DEBROAH","CIERA","CHIN","ANGELIKA","ANDREE","ALTHA","YEN","VIVAN","TERRESA","TANNA","SUK","SUDIE","SOO","SIGNE","SALENA","RONNI","REBBECCA","MYRTIE","MCKENZIE","MALIKA","MAIDA","LOAN","LEONARDA","KAYLEIGH","FRANCE","ETHYL","ELLYN","DAYLE","CAMMIE","BRITTNI","BIRGIT","AVELINA","ASUNCION","ARIANNA","AKIKO","VENICE","TYESHA","TONIE","TIESHA","TAKISHA","STEFFANIE","SINDY","SANTANA","MEGHANN","MANDA","MACIE","LADY","KELLYE","KELLEE","JOSLYN","JASON","INGER","INDIRA","GLINDA","GLENNIS","FERNANDA","FAUSTINA","ENEIDA","ELICIA","DOT","DIGNA","DELL","ARLETTA","ANDRE","WILLIA","TAMMARA","TABETHA","SHERRELL","SARI","REFUGIO","REBBECA","PAULETTA","NIEVES","NATOSHA","NAKITA","MAMMIE","KENISHA","KAZUKO","KASSIE","GARY","EARLEAN","DAPHINE","CORLISS","CLOTILDE","CAROLYNE","BERNETTA","AUGUSTINA","AUDREA","ANNIS","ANNABELL","YAN","TENNILLE","TAMICA","SELENE","SEAN","ROSANA","REGENIA","QIANA","MARKITA","MACY","LEEANNE","LAURINE","KYM","JESSENIA","JANITA","GEORGINE","GENIE","EMIKO","ELVIE","DEANDRA","DAGMAR","CORIE","COLLEN","CHERISH","ROMAINE","PORSHA","PEARLENE","MICHELINE","MERNA","MARGORIE","MARGARETTA","LORE","KENNETH","JENINE","HERMINA","FREDERICKA","ELKE","DRUSILLA","DORATHY","DIONE","DESIRE","CELENA","BRIGIDA","ANGELES","ALLEGRA","THEO","TAMEKIA","SYNTHIA","STEPHEN","SOOK","SLYVIA","ROSANN","REATHA","RAYE","MARQUETTA","MARGART","LING","LAYLA","KYMBERLY","KIANA","KAYLEEN","KATLYN","KARMEN","JOELLA","IRINA","EMELDA","ELENI","DETRA","CLEMMIE","CHERYLL","CHANTELL","CATHEY","ARNITA","ARLA","ANGLE","ANGELIC","ALYSE","ZOFIA","THOMASINE","TENNIE","SON","SHERLY","SHERLEY","SHARYL","REMEDIOS","PETRINA","NICKOLE","MYUNG","MYRLE","MOZELLA","LOUANNE","LISHA","LATIA","LANE","KRYSTA","JULIENNE","JOEL","JEANENE","JACQUALINE","ISAURA","GWENDA","EARLEEN","DONALD","CLEOPATRA","CARLIE","AUDIE","ANTONIETTA","ALISE","ALEX","VERDELL","VAL","TYLER","TOMOKO","THAO","TALISHA","STEVEN","SO","SHEMIKA","SHAUN","SCARLET","SAVANNA","SANTINA","ROSIA","RAEANN","ODILIA","NANA","MINNA","MAGAN","LYNELLE","LE","KARMA","JOEANN","IVANA","INELL","ILANA","HYE","HONEY","HEE","GUDRUN","FRANK","DREAMA","CRISSY","CHANTE","CARMELINA","ARVILLA","ARTHUR","ANNAMAE","ALVERA","ALEIDA","AARON","YEE","YANIRA","VANDA","TIANNA","TAM","STEFANIA","SHIRA","PERRY","NICOL","NANCIE","MONSERRATE","MINH","MELYNDA","MELANY","MATTHEW","LOVELLA","LAURE","KIRBY","KACY","JACQUELYNN","HYON","GERTHA","FRANCISCO","ELIANA","CHRISTENA","CHRISTEEN","CHARISE","CATERINA","CARLEY","CANDYCE","ARLENA","AMMIE","YANG","WILLETTE","VANITA","TUYET","TINY","SYREETA","SILVA","SCOTT","RONALD","PENNEY","NYLA","MICHAL","MAURICE","MARYAM","MARYA","MAGEN","LUDIE","LOMA","LIVIA","LANELL","KIMBERLIE","JULEE","DONETTA","DIEDRA","DENISHA","DEANE","DAWNE","CLARINE","CHERRYL","BRONWYN","BRANDON","ALLA","VALERY","TONDA","SUEANN","SORAYA","SHOSHANA","SHELA","SHARLEEN","SHANELLE","NERISSA","MICHEAL","MERIDITH","MELLIE","MAYE","MAPLE","MAGARET","LUIS","LILI","LEONILA","LEONIE","LEEANNA","LAVONIA","LAVERA","KRISTEL","KATHEY","KATHE","JUSTIN","JULIAN","JIMMY","JANN","ILDA","HILDRED","HILDEGARDE","GENIA","FUMIKO","EVELIN","ERMELINDA","ELLY","DUNG","DOLORIS","DIONNA","DANAE","BERNEICE","ANNICE","ALIX","VERENA","VERDIE","TRISTAN","SHAWNNA","SHAWANA","SHAUNNA","ROZELLA","RANDEE","RANAE","MILAGRO","LYNELL","LUISE","LOUIE","LOIDA","LISBETH","KARLEEN","JUNITA","JONA","ISIS","HYACINTH","HEDY","GWENN","ETHELENE","ERLINE","EDWARD","DONYA","DOMONIQUE","DELICIA","DANNETTE","CICELY","BRANDA","BLYTHE","BETHANN","ASHLYN","ANNALEE","ALLINE","YUKO","VELLA","TRANG","TOWANDA","TESHA","SHERLYN","NARCISA","MIGUELINA","MERI","MAYBELL","MARLANA","MARGUERITA","MADLYN","LUNA","LORY","LORIANN","LIBERTY","LEONORE","LEIGHANN","LAURICE","LATESHA","LARONDA","KATRICE","KASIE","KARL","KALEY","JADWIGA","GLENNIE","GEARLDINE","FRANCINA","EPIFANIA","DYAN","DORIE","DIEDRE","DENESE","DEMETRICE","DELENA","DARBY","CRISTIE","CLEORA","CATARINA","CARISA","BERNIE","BARBERA","ALMETA","TRULA","TEREASA","SOLANGE","SHEILAH","SHAVONNE","SANORA","ROCHELL","MATHILDE","MARGARETA","MAIA","LYNSEY","LAWANNA","LAUNA","KENA","KEENA","KATIA","JAMEY","GLYNDA","GAYLENE","ELVINA","ELANOR","DANUTA","DANIKA","CRISTEN","CORDIE","COLETTA","CLARITA","CARMON","BRYNN","AZUCENA","AUNDREA","ANGELE","YI","WALTER","VERLIE","VERLENE","TAMESHA","SILVANA","SEBRINA","SAMIRA","REDA","RAYLENE","PENNI","PANDORA","NORAH","NOMA","MIREILLE","MELISSIA","MARYALICE","LARAINE","KIMBERY","KARYL","KARINE","KAM","JOLANDA","JOHANA","JESUSA","JALEESA","JAE","JACQUELYNE","IRISH","ILUMINADA","HILARIA","HANH","GENNIE","FRANCIE","FLORETTA","EXIE","EDDA","DREMA","DELPHA","BEV","BARBAR","ASSUNTA","ARDELL","ANNALISA","ALISIA","YUKIKO","YOLANDO","WONDA","WEI","WALTRAUD","VETA","TEQUILA","TEMEKA","TAMEIKA","SHIRLEEN","SHENITA","PIEDAD","OZELLA","MIRTHA","MARILU","KIMIKO","JULIANE","JENICE","JEN","JANAY","JACQUILINE","HILDE","FE","FAE","EVAN","EUGENE","ELOIS","ECHO","DEVORAH","CHAU","BRINDA","BETSEY","ARMINDA","ARACELIS","APRYL","ANNETT","ALISHIA","VEOLA","USHA","TOSHIKO","THEOLA","TASHIA","TALITHA","SHERY","RUDY","RENETTA","REIKO","RASHEEDA","OMEGA","OBDULIA","MIKA","MELAINE","MEGGAN","MARTIN","MARLEN","MARGET","MARCELINE","MANA","MAGDALEN","LIBRADA","LEZLIE","LEXIE","LATASHIA","LASANDRA","KELLE","ISIDRA","ISA","INOCENCIA","GWYN","FRANCOISE","ERMINIA","ERINN","DIMPLE","DEVORA","CRISELDA","ARMANDA","ARIE","ARIANE","ANGELO","ANGELENA","ALLEN","ALIZA","ADRIENE","ADALINE","XOCHITL","TWANNA","TRAN","TOMIKO","TAMISHA","TAISHA","SUSY","SIU","RUTHA","ROXY","RHONA","RAYMOND","OTHA","NORIKO","NATASHIA","MERRIE","MELVIN","MARINDA","MARIKO","MARGERT","LORIS","LIZZETTE","LEISHA","KAILA","KA","JOANNIE","JERRICA","JENE","JANNET","JANEE","JACINDA","HERTA","ELENORE","DORETTA","DELAINE","DANIELL","CLAUDIE","CHINA","BRITTA","APOLONIA","AMBERLY","ALEASE","YURI","YUK","WEN","WANETA","UTE","TOMI","SHARRI","SANDIE","ROSELLE","REYNALDA","RAGUEL","PHYLICIA","PATRIA","OLIMPIA","ODELIA","MITZIE","MITCHELL","MISS","MINDA","MIGNON","MICA","MENDY","MARIVEL","MAILE","LYNETTA","LAVETTE","LAURYN","LATRISHA","LAKIESHA","KIERSTEN","KARY","JOSPHINE","JOLYN","JETTA","JANISE","JACQUIE","IVELISSE","GLYNIS","GIANNA","GAYNELLE","EMERALD","DEMETRIUS","DANYELL","DANILLE","DACIA","CORALEE","CHER","CEOLA","BRETT","BELL","ARIANNE","ALESHIA","YUNG","WILLIEMAE","TROY","TRINH","THORA","TAI","SVETLANA","SHERIKA","SHEMEKA","SHAUNDA","ROSELINE","RICKI","MELDA","MALLIE","LAVONNA","LATINA","LARRY","LAQUANDA","LALA","LACHELLE","KLARA","KANDIS","JOHNA","JEANMARIE","JAYE","HANG","GRAYCE","GERTUDE","EMERITA","EBONIE","CLORINDA","CHING","CHERY","CAROLA","BREANN","BLOSSOM","BERNARDINE","BECKI","ARLETHA","ARGELIA","ARA","ALITA","YULANDA","YON","YESSENIA","TOBI","TASIA","SYLVIE","SHIRL","SHIRELY","SHERIDAN","SHELLA","SHANTELLE","SACHA","ROYCE","REBECKA","REAGAN","PROVIDENCIA","PAULENE","MISHA","MIKI","MARLINE","MARICA","LORITA","LATOYIA","LASONYA","KERSTIN","KENDA","KEITHA","KATHRIN","JAYMIE","JACK","GRICELDA","GINETTE","ERYN","ELINA","ELFRIEDA","DANYEL","CHEREE","CHANELLE","BARRIE","AVERY","AURORE","ANNAMARIA","ALLEEN","AILENE","AIDE","YASMINE","VASHTI","VALENTINE","TREASA","TORY","TIFFANEY","SHERYLL","SHARIE","SHANAE","SAU","RAISA","PA","NEDA","MITSUKO","MIRELLA","MILDA","MARYANNA","MARAGRET","MABELLE","LUETTA","LORINA","LETISHA","LATARSHA","LANELLE","LAJUANA","KRISSY","KARLY","KARENA","JON","JESSIKA","JERICA","JEANELLE","JANUARY","JALISA","JACELYN","IZOLA","IVEY","GREGORY","EUNA","ETHA","DREW","DOMITILA","DOMINICA","DAINA","CREOLA","CARLI","CAMIE","BUNNY","BRITTNY","ASHANTI","ANISHA","ALEEN","ADAH","YASUKO","WINTER","VIKI","VALRIE","TONA","TINISHA","THI","TERISA","TATUM","TANEKA","SIMONNE","SHALANDA","SERITA","RESSIE","REFUGIA","PAZ","OLENE","NA","MERRILL","MARGHERITA","MANDIE","MAN","MAIRE","LYNDIA","LUCI","LORRIANE","LORETA","LEONIA","LAVONA","LASHAWNDA","LAKIA","KYOKO","KRYSTINA","KRYSTEN","KENIA","KELSI","JUDE","JEANICE","ISOBEL","GEORGIANN","GENNY","FELICIDAD","EILENE","DEON","DELOISE","DEEDEE","DANNIE","CONCEPTION","CLORA","CHERILYN","CHANG","CALANDRA","BERRY","ARMANDINA","ANISA","ULA","TIMOTHY","TIERA","THERESSA","STEPHANIA","SIMA","SHYLA","SHONTA","SHERA","SHAQUITA","SHALA","SAMMY","ROSSANA","NOHEMI","NERY","MORIAH","MELITA","MELIDA","MELANI","MARYLYNN","MARISHA","MARIETTE","MALORIE","MADELENE","LUDIVINA","LORIA","LORETTE","LORALEE","LIANNE","LEON","LAVENIA","LAURINDA","LASHON","KIT","KIMI","KEILA","KATELYNN","KAI","JONE","JOANE","JI","JAYNA","JANELLA","JA","HUE","HERTHA","FRANCENE","ELINORE","DESPINA","DELSIE","DEEDRA","CLEMENCIA","CARRY","CAROLIN","CARLOS","BULAH","BRITTANIE","BOK","BLONDELL","BIBI","BEAULAH","BEATA","ANNITA","AGRIPINA","VIRGEN","VALENE","UN","TWANDA","TOMMYE","TOI","TARRA","TARI","TAMMERA","SHAKIA","SADYE","RUTHANNE","ROCHEL","RIVKA","PURA","NENITA","NATISHA","MING","MERRILEE","MELODEE","MARVIS","LUCILLA","LEENA","LAVETA","LARITA","LANIE","KEREN","ILEEN","GEORGEANN","GENNA","GENESIS","FRIDA","EWA","EUFEMIA","EMELY","ELA","EDYTH","DEONNA","DEADRA","DARLENA","CHANELL","CHAN","CATHERN","CASSONDRA","CASSAUNDRA","BERNARDA","BERNA","ARLINDA","ANAMARIA","ALBERT","WESLEY","VERTIE","VALERI","TORRI","TATYANA","STASIA","SHERISE","SHERILL","SEASON","SCOTTIE","SANDA","RUTHE","ROSY","ROBERTO","ROBBI","RANEE","QUYEN","PEARLY","PALMIRA","ONITA","NISHA","NIESHA","NIDA","NEVADA","NAM","MERLYN","MAYOLA","MARYLOUISE","MARYLAND","MARX","MARTH","MARGENE","MADELAINE","LONDA","LEONTINE","LEOMA","LEIA","LAWRENCE","LAURALEE","LANORA","LAKITA","KIYOKO","KETURAH","KATELIN","KAREEN","JONIE","JOHNETTE","JENEE","JEANETT","IZETTA","HIEDI","HEIKE","HASSIE","HAROLD","GIUSEPPINA","GEORGANN","FIDELA","FERNANDE","ELWANDA","ELLAMAE","ELIZ","DUSTI","DOTTY","CYNDY","CORALIE","CELESTA","ARGENTINA","ALVERTA","XENIA","WAVA","VANETTA","TORRIE","TASHINA","TANDY","TAMBRA","TAMA","STEPANIE","SHILA","SHAUNTA","SHARAN","SHANIQUA","SHAE","SETSUKO","SERAFINA","SANDEE","ROSAMARIA","PRISCILA","OLINDA","NADENE","MUOI","MICHELINA","MERCEDEZ","MARYROSE","MARIN","MARCENE","MAO","MAGALI","MAFALDA","LOGAN","LINN","LANNIE","KAYCE","KAROLINE","KAMILAH","KAMALA","JUSTA","JOLINE","JENNINE","JACQUETTA","IRAIDA","GERALD","GEORGEANNA","FRANCHESCA","FAIRY","EMELINE","ELANE","EHTEL","EARLIE","DULCIE","DALENE","CRIS","CLASSIE","CHERE","CHARIS","CAROYLN","CARMINA","CARITA","BRIAN","BETHANIE","AYAKO","ARICA","AN","ALYSA","ALESSANDRA","AKILAH","ADRIEN","ZETTA","YOULANDA","YELENA","YAHAIRA","XUAN","WENDOLYN","VICTOR","TIJUANA","TERRELL","TERINA","TERESIA","SUZI","SUNDAY","SHERELL","SHAVONDA","SHAUNTE","SHARDA","SHAKITA","SENA","RYANN","RUBI","RIVA","REGINIA","REA","RACHAL","PARTHENIA","PAMULA","MONNIE","MONET","MICHAELE","MELIA","MARINE","MALKA","MAISHA","LISANDRA","LEO","LEKISHA","LEAN","LAURENCE","LAKENDRA","KRYSTIN","KORTNEY","KIZZIE","KITTIE","KERA","KENDAL","KEMBERLY","KANISHA","JULENE","JULE","JOSHUA","JOHANNE","JEFFREY","JAMEE","HAN","HALLEY","GIDGET","GALINA","FREDRICKA","FLETA","FATIMAH","EUSEBIA","ELZA","ELEONORE","DORTHEY","DORIA","DONELLA","DINORAH","DELORSE","CLARETHA","CHRISTINIA","CHARLYN","BONG","BELKIS","AZZIE","ANDERA","AIKO","ADENA","YER","YAJAIRA","WAN","VANIA","ULRIKE","TOSHIA","TIFANY","STEFANY","SHIZUE","SHENIKA","SHAWANNA","SHAROLYN","SHARILYN","SHAQUANA","SHANTAY","SEE","ROZANNE","ROSELEE","RICKIE","REMONA","REANNA","RAELENE","QUINN","PHUNG","PETRONILA","NATACHA","NANCEY","MYRL","MIYOKO","MIESHA","MERIDETH","MARVELLA","MARQUITTA","MARHTA","MARCHELLE","LIZETH","LIBBIE","LAHOMA","LADAWN","KINA","KATHELEEN","KATHARYN","KARISA","KALEIGH","JUNIE","JULIEANN","JOHNSIE","JANEAN","JAIMEE","JACKQUELINE","HISAKO","HERMA","HELAINE","GWYNETH","GLENN","GITA","EUSTOLIA","EMELINA","ELIN","EDRIS","DONNETTE","DONNETTA","DIERDRE","DENAE","DARCEL","CLAUDE","CLARISA","CINDERELLA","CHIA","CHARLESETTA","CHARITA","CELSA","CASSY","CASSI","CARLEE","BRUNA","BRITTANEY","BRANDE","BILLI","BAO","ANTONETTA","ANGLA","ANGELYN","ANALISA","ALANE","WENONA","WENDIE","VERONIQUE","VANNESA","TOBIE","TEMPIE","SUMIKO","SULEMA","SPARKLE","SOMER","SHEBA","SHAYNE","SHARICE","SHANEL","SHALON","SAGE","ROY","ROSIO","ROSELIA","RENAY","REMA","REENA","PORSCHE","PING","PEG","OZIE","ORETHA","ORALEE","ODA","NU","NGAN","NAKESHA","MILLY","MARYBELLE","MARLIN","MARIS","MARGRETT","MARAGARET","MANIE","LURLENE","LILLIA","LIESELOTTE","LAVELLE","LASHAUNDA","LAKEESHA","KEITH","KAYCEE","KALYN","JOYA","JOETTE","JENAE","JANIECE","ILLA","GRISEL","GLAYDS","GENEVIE","GALA","FREDDA","FRED","ELMER","ELEONOR","DEBERA","DEANDREA","DAN","CORRINNE","CORDIA","CONTESSA","COLENE","CLEOTILDE","CHARLOTT","CHANTAY","CECILLE","BEATRIS","AZALEE","ARLEAN","ARDATH","ANJELICA","ANJA","ALFREDIA","ALEISHA","ADAM","ZADA","YUONNE","XIAO","WILLODEAN","WHITLEY","VENNIE","VANNA","TYISHA","TOVA","TORIE","TONISHA","TILDA","TIEN","TEMPLE","SIRENA","SHERRIL","SHANTI","SHAN","SENAIDA","SAMELLA","ROBBYN","RENDA","REITA","PHEBE","PAULITA","NOBUKO","NGUYET","NEOMI","MOON","MIKAELA","MELANIA","MAXIMINA","MARG","MAISIE","LYNNA","LILLI","LAYNE","LASHAUN","LAKENYA","LAEL","KIRSTIE","KATHLINE","KASHA","KARLYN","KARIMA","JOVAN","JOSEFINE","JENNELL","JACQUI","JACKELYN","HYO","HIEN","GRAZYNA","FLORRIE","FLORIA","ELEONORA","DWANA","DORLA","DONG","DELMY","DEJA","DEDE","DANN","CRYSTA","CLELIA","CLARIS","CLARENCE","CHIEKO","CHERLYN","CHERELLE","CHARMAIN","CHARA","CAMMY","BEE","ARNETTE","ARDELLE","ANNIKA","AMIEE","AMEE","ALLENA","YVONE","YUKI","YOSHIE","YEVETTE","YAEL","WILLETTA","VONCILE","VENETTA","TULA","TONETTE","TIMIKA","TEMIKA","TELMA","TEISHA","TAREN","TA","STACEE","SHIN","SHAWNTA","SATURNINA","RICARDA","POK","PASTY","ONIE","NUBIA","MORA","MIKE","MARIELLE","MARIELLA","MARIANELA","MARDELL","MANY","LUANNA","LOISE","LISABETH","LINDSY","LILLIANA","LILLIAM","LELAH","LEIGHA","LEANORA","LANG","KRISTEEN","KHALILAH","KEELEY","KANDRA","JUNKO","JOAQUINA","JERLENE","JANI","JAMIKA","JAME","HSIU","HERMILA","GOLDEN","GENEVIVE","EVIA","EUGENA","EMMALINE","ELFREDA","ELENE","DONETTE","DELCIE","DEEANNA","DARCEY","CUC","CLARINDA","CIRA","CHAE","CELINDA","CATHERYN","CATHERIN","CASIMIRA","CARMELIA","CAMELLIA","BREANA","BOBETTE","BERNARDINA","BEBE","BASILIA","ARLYNE","AMAL","ALAYNA","ZONIA","ZENIA","YURIKO","YAEKO","WYNELL","WILLOW","WILLENA","VERNIA","TU","TRAVIS","TORA","TERRILYN","TERICA","TENESHA","TAWNA","TAJUANA","TAINA","STEPHNIE","SONA","SOL","SINA","SHONDRA","SHIZUKO","SHERLENE","SHERICE","SHARIKA","ROSSIE","ROSENA","RORY","RIMA","RIA","RHEBA","RENNA","PETER","NATALYA","NANCEE","MELODI","MEDA","MAXIMA","MATHA","MARKETTA","MARICRUZ","MARCELENE","MALVINA","LUBA","LOUETTA","LEIDA","LECIA","LAURAN","LASHAWNA","LAINE","KHADIJAH","KATERINE","KASI","KALLIE","JULIETTA","JESUSITA","JESTINE","JESSIA","JEREMY","JEFFIE","JANYCE","ISADORA","GEORGIANNE","FIDELIA","EVITA","EURA","EULAH","ESTEFANA","ELSY","ELIZABET","ELADIA","DODIE","DION","DIA","DENISSE","DELORAS","DELILA","DAYSI","DAKOTA","CURTIS","CRYSTLE","CONCHA","COLBY","CLARETTA","CHU","CHRISTIA","CHARLSIE","CHARLENA","CARYLON","BETTYANN","ASLEY","ASHLEA","AMIRA","AI","AGUEDA","AGNUS","YUETTE","VINITA","VICTORINA","TYNISHA","TREENA","TOCCARA","TISH","THOMASENA","TEGAN","SOILA","SHILOH","SHENNA","SHARMAINE","SHANTAE","SHANDI","SEPTEMBER","SARAN","SARAI","SANA","SAMUEL","SALLEY","ROSETTE","ROLANDE","REGINE","OTELIA","OSCAR","OLEVIA","NICHOLLE","NECOLE","NAIDA","MYRTA","MYESHA","MITSUE","MINTA","MERTIE","MARGY","MAHALIA","MADALENE","LOVE","LOURA","LOREAN","LEWIS","LESHA","LEONIDA","LENITA","LAVONE","LASHELL","LASHANDRA","LAMONICA","KIMBRA","KATHERINA","KARRY","KANESHA","JULIO","JONG","JENEVA","JAQUELYN","HWA","GILMA","GHISLAINE","GERTRUDIS","FRANSISCA","FERMINA","ETTIE","ETSUKO","ELLIS","ELLAN","ELIDIA","EDRA","DORETHEA","DOREATHA","DENYSE","DENNY","DEETTA","DAINE","CYRSTAL","CORRIN","CAYLA","CARLITA","CAMILA","BURMA","BULA","BUENA","BLAKE","BARABARA","AVRIL","AUSTIN","ALAINE","ZANA","WILHEMINA","WANETTA","VIRGIL","VI","VERONIKA","VERNON","VERLINE","VASILIKI","TONITA","TISA","TEOFILA","TAYNA","TAUNYA","TANDRA","TAKAKO","SUNNI","SUANNE","SIXTA","SHARELL","SEEMA","RUSSELL","ROSENDA","ROBENA","RAYMONDE","PEI","PAMILA","OZELL","NEIDA","NEELY","MISTIE","MICHA","MERISSA","MAURITA","MARYLN","MARYETTA","MARSHALL","MARCELL","MALENA","MAKEDA","MADDIE","LOVETTA","LOURIE","LORRINE","LORILEE","LESTER","LAURENA","LASHAY","LARRAINE","LAREE","LACRESHA","KRISTLE","KRISHNA","KEVA","KEIRA","KAROLE","JOIE","JINNY","JEANNETTA","JAMA","HEIDY","GILBERTE","GEMA","FAVIOLA","EVELYNN","ENDA","ELLI","ELLENA","DIVINA","DAGNY","COLLENE","CODI","CINDIE","CHASSIDY","CHASIDY","CATRICE","CATHERINA","CASSEY","CAROLL","CARLENA","CANDRA","CALISTA","BRYANNA","BRITTENY","BEULA","BARI","AUDRIE","AUDRIA","ARDELIA","ANNELLE","ANGILA","ALONA","ALLYN","DOUGLAS","ROGER","JONATHAN","RALPH","NICHOLAS","BENJAMIN","BRUCE","HARRY","WAYNE","STEVE","HOWARD","ERNEST","PHILLIP","TODD","CRAIG","ALAN","PHILIP","EARL","DANNY","BRYAN","STANLEY","LEONARD","NATHAN","MANUEL","RODNEY","MARVIN","VINCENT","JEFFERY","JEFF","CHAD","JACOB","ALFRED","BRADLEY","HERBERT","FREDERICK","EDWIN","DON","RICKY","RANDALL","BARRY","BERNARD","LEROY","MARCUS","THEODORE","CLIFFORD","MIGUEL","JIM","TOM","CALVIN","BILL","LLOYD","DEREK","WARREN","DARRELL","JEROME","FLOYD","ALVIN","TIM","GORDON","GREG","JORGE","DUSTIN","PEDRO","DERRICK","ZACHARY","HERMAN","GLEN","HECTOR","RICARDO","RICK","BRENT","RAMON","GILBERT","MARC","REGINALD","RUBEN","NATHANIEL","RAFAEL","EDGAR","MILTON","RAUL","BEN","CHESTER","DUANE","FRANKLIN","BRAD","RON","ROLAND","ARNOLD","HARVEY","JARED","ERIK","DARRYL","NEIL","JAVIER","FERNANDO","CLINTON","TED","MATHEW","TYRONE","DARREN","LANCE","KURT","ALLAN","NELSON","GUY","CLAYTON","HUGH","MAX","DWAYNE","DWIGHT","ARMANDO","FELIX","EVERETT","IAN","WALLACE","KEN","BOB","ALFREDO","ALBERTO","DAVE","IVAN","BYRON","ISAAC","MORRIS","CLIFTON","WILLARD","ROSS","ANDY","SALVADOR","KIRK","SERGIO","SETH","KENT","TERRANCE","EDUARDO","TERRENCE","ENRIQUE","WADE","STUART","FREDRICK","ARTURO","ALEJANDRO","NICK","LUTHER","WENDELL","JEREMIAH","JULIUS","OTIS","TREVOR","OLIVER","LUKE","HOMER","GERARD","DOUG","KENNY","HUBERT","LYLE","MATT","ALFONSO","ORLANDO","REX","CARLTON","ERNESTO","NEAL","PABLO","LORENZO","OMAR","WILBUR","GRANT","HORACE","RODERICK","ABRAHAM","WILLIS","RICKEY","ANDRES","CESAR","JOHNATHAN","MALCOLM","RUDOLPH","DAMON","KELVIN","PRESTON","ALTON","ARCHIE","MARCO","WM","PETE","RANDOLPH","GARRY","GEOFFREY","JONATHON","FELIPE","GERARDO","ED","DOMINIC","DELBERT","COLIN","GUILLERMO","EARNEST","LUCAS","BENNY","SPENCER","RODOLFO","MYRON","EDMUND","GARRETT","SALVATORE","CEDRIC","LOWELL","GREGG","SHERMAN","WILSON","SYLVESTER","ROOSEVELT","ISRAEL","JERMAINE","FORREST","WILBERT","LELAND","SIMON","CLARK","IRVING","BRYANT","OWEN","RUFUS","WOODROW","KRISTOPHER","MACK","LEVI","MARCOS","GUSTAVO","JAKE","LIONEL","GILBERTO","CLINT","NICOLAS","ISMAEL","ORVILLE","ERVIN","DEWEY","AL","WILFRED","JOSH","HUGO","IGNACIO","CALEB","TOMAS","SHELDON","ERICK","STEWART","DOYLE","DARREL","ROGELIO","TERENCE","SANTIAGO","ALONZO","ELIAS","BERT","ELBERT","RAMIRO","CONRAD","NOAH","GRADY","PHIL","CORNELIUS","LAMAR","ROLANDO","CLAY","PERCY","DEXTER","BRADFORD","DARIN","AMOS","MOSES","IRVIN","SAUL","ROMAN","RANDAL","TIMMY","DARRIN","WINSTON","BRENDAN","ABEL","DOMINICK","BOYD","EMILIO","ELIJAH","DOMINGO","EMMETT","MARLON","EMANUEL","JERALD","EDMOND","EMIL","DEWAYNE","WILL","OTTO","TEDDY","REYNALDO","BRET","JESS","TRENT","HUMBERTO","EMMANUEL","STEPHAN","VICENTE","LAMONT","GARLAND","MILES","EFRAIN","HEATH","RODGER","HARLEY","ETHAN","ELDON","ROCKY","PIERRE","JUNIOR","FREDDY","ELI","BRYCE","ANTOINE","STERLING","CHASE","GROVER","ELTON","CLEVELAND","DYLAN","CHUCK","DAMIAN","REUBEN","STAN","AUGUST","LEONARDO","JASPER","RUSSEL","ERWIN","BENITO","HANS","MONTE","BLAINE","ERNIE","CURT","QUENTIN","AGUSTIN","MURRAY","JAMAL","ADOLFO","HARRISON","TYSON","BURTON","BRADY","ELLIOTT","WILFREDO","BART","JARROD","VANCE","DENIS","DAMIEN","JOAQUIN","HARLAN","DESMOND","ELLIOT","DARWIN","GREGORIO","BUDDY","XAVIER","KERMIT","ROSCOE","ESTEBAN","ANTON","SOLOMON","SCOTTY","NORBERT","ELVIN","WILLIAMS","NOLAN","ROD","QUINTON","HAL","BRAIN","ROB","ELWOOD","KENDRICK","DARIUS","MOISES","FIDEL","THADDEUS","CLIFF","MARCEL","JACKSON","RAPHAEL","BRYON","ARMAND","ALVARO","JEFFRY","DANE","JOESPH","THURMAN","NED","RUSTY","MONTY","FABIAN","REGGIE","MASON","GRAHAM","ISAIAH","VAUGHN","GUS","LOYD","DIEGO","ADOLPH","NORRIS","MILLARD","ROCCO","GONZALO","DERICK","RODRIGO","WILEY","RIGOBERTO","ALPHONSO","TY","NOE","VERN","REED","JEFFERSON","ELVIS","BERNARDO","MAURICIO","HIRAM","DONOVAN","BASIL","RILEY","NICKOLAS","MAYNARD","SCOT","VINCE","QUINCY","EDDY","SEBASTIAN","FEDERICO","ULYSSES","HERIBERTO","DONNELL","COLE","DAVIS","GAVIN","EMERY","WARD","ROMEO","JAYSON","DANTE","CLEMENT","COY","MAXWELL","JARVIS","BRUNO","ISSAC","DUDLEY","BROCK","SANFORD","CARMELO","BARNEY","NESTOR","STEFAN","DONNY","ART","LINWOOD","BEAU","WELDON","GALEN","ISIDRO","TRUMAN","DELMAR","JOHNATHON","SILAS","FREDERIC","DICK","IRWIN","MERLIN","CHARLEY","MARCELINO","HARRIS","CARLO","TRENTON","KURTIS","HUNTER","AURELIO","WINFRED","VITO","COLLIN","DENVER","CARTER","LEONEL","EMORY","PASQUALE","MOHAMMAD","MARIANO","DANIAL","LANDON","DIRK","BRANDEN","ADAN","BUFORD","GERMAN","WILMER","EMERSON","ZACHERY","FLETCHER","JACQUES","ERROL","DALTON","MONROE","JOSUE","EDWARDO","BOOKER","WILFORD","SONNY","SHELTON","CARSON","THERON","RAYMUNDO","DAREN","HOUSTON","ROBBY","LINCOLN","GENARO","BENNETT","OCTAVIO","CORNELL","HUNG","ARRON","ANTONY","HERSCHEL","GIOVANNI","GARTH","CYRUS","CYRIL","RONNY","LON","FREEMAN","DUNCAN","KENNITH","CARMINE","ERICH","CHADWICK","WILBURN","RUSS","REID","MYLES","ANDERSON","MORTON","JONAS","FOREST","MITCHEL","MERVIN","ZANE","RICH","JAMEL","LAZARO","ALPHONSE","RANDELL","MAJOR","JARRETT","BROOKS","ABDUL","LUCIANO","SEYMOUR","EUGENIO","MOHAMMED","VALENTIN","CHANCE","ARNULFO","LUCIEN","FERDINAND","THAD","EZRA","ALDO","RUBIN","ROYAL","MITCH","EARLE","ABE","WYATT","MARQUIS","LANNY","KAREEM","JAMAR","BORIS","ISIAH","EMILE","ELMO","ARON","LEOPOLDO","EVERETTE","JOSEF","ELOY","RODRICK","REINALDO","LUCIO","JERROD","WESTON","HERSHEL","BARTON","PARKER","LEMUEL","BURT","JULES","GIL","ELISEO","AHMAD","NIGEL","EFREN","ANTWAN","ALDEN","MARGARITO","COLEMAN","DINO","OSVALDO","LES","DEANDRE","NORMAND","KIETH","TREY","NORBERTO","NAPOLEON","JEROLD","FRITZ","ROSENDO","MILFORD","CHRISTOPER","ALFONZO","LYMAN","JOSIAH","BRANT","WILTON","RICO","JAMAAL","DEWITT","BRENTON","OLIN","FOSTER","FAUSTINO","CLAUDIO","JUDSON","GINO","EDGARDO","ALEC","TANNER","JARRED","DONN","TAD","PRINCE","PORFIRIO","ODIS","LENARD","CHAUNCEY","TOD","MEL","MARCELO","KORY","AUGUSTUS","KEVEN","HILARIO","BUD","SAL","ORVAL","MAURO","ZACHARIAH","OLEN","ANIBAL","MILO","JED","DILLON","AMADO","NEWTON","LENNY","RICHIE","HORACIO","BRICE","MOHAMED","DELMER","DARIO","REYES","MAC","JONAH","JERROLD","ROBT","HANK","RUPERT","ROLLAND","KENTON","DAMION","ANTONE","WALDO","FREDRIC","BRADLY","KIP","BURL","WALKER","TYREE","JEFFEREY","AHMED","WILLY","STANFORD","OREN","NOBLE","MOSHE","MIKEL","ENOCH","BRENDON","QUINTIN","JAMISON","FLORENCIO","DARRICK","TOBIAS","HASSAN","GIUSEPPE","DEMARCUS","CLETUS","TYRELL","LYNDON","KEENAN","WERNER","GERALDO","COLUMBUS","CHET","BERTRAM","MARKUS","HUEY","HILTON","DWAIN","DONTE","TYRON","OMER","ISAIAS","HIPOLITO","FERMIN","ADALBERTO","BO","BARRETT","TEODORO","MCKINLEY","MAXIMO","GARFIELD","RALEIGH","LAWERENCE","ABRAM","RASHAD","KING","EMMITT","DARON","SAMUAL","MIQUEL","EUSEBIO","DOMENIC","DARRON","BUSTER","WILBER","RENATO","JC","HOYT","HAYWOOD","EZEKIEL","CHAS","FLORENTINO","ELROY","CLEMENTE","ARDEN","NEVILLE","EDISON","DESHAWN","NATHANIAL","JORDON","DANILO","CLAUD","SHERWOOD","RAYMON","RAYFORD","CRISTOBAL","AMBROSE","TITUS","HYMAN","FELTON","EZEQUIEL","ERASMO","STANTON","LONNY","LEN","IKE","MILAN","LINO","JAROD","HERB","ANDREAS","WALTON","RHETT","PALMER","DOUGLASS","CORDELL","OSWALDO","ELLSWORTH","VIRGILIO","TONEY","NATHANAEL","DEL","BENEDICT","MOSE","JOHNSON","ISREAL","GARRET","FAUSTO","ASA","ARLEN","ZACK","WARNER","MODESTO","FRANCESCO","MANUAL","GAYLORD","GASTON","FILIBERTO","DEANGELO","MICHALE","GRANVILLE","WES","MALIK","ZACKARY","TUAN","ELDRIDGE","CRISTOPHER","CORTEZ","ANTIONE","MALCOM","LONG","KOREY","JOSPEH","COLTON","WAYLON","VON","HOSEA","SHAD","SANTO","RUDOLF","ROLF","REY","RENALDO","MARCELLUS","LUCIUS","KRISTOFER","BOYCE","BENTON","HAYDEN","HARLAND","ARNOLDO","RUEBEN","LEANDRO","KRAIG","JERRELL","JEROMY","HOBERT","CEDRICK","ARLIE","WINFORD","WALLY","LUIGI","KENETH","JACINTO","GRAIG","FRANKLYN","EDMUNDO","SID","PORTER","LEIF","JERAMY","BUCK","WILLIAN","VINCENZO","SHON","LYNWOOD","JERE","HAI","ELDEN","DORSEY","DARELL","BRODERICK","ALONSO" \ No newline at end of file diff --git a/src/further_examples/project_euler/names_score.py b/src/further_examples/project_euler/names_score.py deleted file mode 100644 index 7c2f1bb..0000000 --- a/src/further_examples/project_euler/names_score.py +++ /dev/null @@ -1,33 +0,0 @@ -#!/usr/bin/python3 -# mari von steinkirch @2013 -# steinkirch at gmail - - -def calculate_score(name, dict_letters): - sum_letters = 0 - for letter in name: - sum_letters += dict_letters[letter] - return sum_letters - -def names_score(filename): - dict_letters ={'A':1,'B':2,'C':3,'D':4,'E':5,'F':6,'G':7,'H':8,'I':9,'J':10,'K':11,'L':12,'M':13,'N':14,'O':15,'P':16,'Q':17,'R':18,'S':19, 'T':20,'U':21,'V':22,'W':23,'X':24,'Y':25,'Z':26} - total_score = 0 - with open(filename) as file: - for line in file: - names = [name.strip('"') for name in line.split(',')] - names.sort() - for i, name in enumerate(names): - total_score += (i+1)* calculate_score(name, dict_letters) - - return total_score - - - -def main(): - filename = 'names.txt' - print(names_score(filename)) - - -if __name__ == '__main__': - main() - diff --git a/src/further_examples/project_euler/non_abund_sums.py b/src/further_examples/project_euler/non_abund_sums.py deleted file mode 100644 index 2f9e496..0000000 --- a/src/further_examples/project_euler/non_abund_sums.py +++ /dev/null @@ -1,44 +0,0 @@ -#!/usr/bin/python3 -# mari von steinkirch @2013 -# steinkirch at gmail - -def find_sum_proper_div(n): - sum_proper_div = 0 - for i in range(1, n): - if n%i == 0: - sum_proper_div += i - return sum_proper_div - - -def find_all_abund(n): - sum_div_list = [find_sum_proper_div(i) for i in range(n)] - abu = set() - for i in range(n): - if i < sum_div_list[i]: - abu.add(i) - return abu - - -def non_abund_sums(n): - abu = find_all_abund(n) - sum_nom_abu = 0 - - for i in range(n): - if not any( (i-a in abu) for a in abu): - sum_nom_abu += i - - return sum_nom_abu - - -def test_(): - r = set([i for i in range(25)]) - r_abu = {24} - r = r - r_abu - assert(non_abund_sums(25) == sum(r)) - print(non_abund_sums(28123)) - print('Tests Passed!') - - -if __name__ == '__main__': - test_() - diff --git a/src/further_examples/project_euler/number_letter_counts.py b/src/further_examples/project_euler/number_letter_counts.py deleted file mode 100644 index 8b1b43b..0000000 --- a/src/further_examples/project_euler/number_letter_counts.py +++ /dev/null @@ -1,63 +0,0 @@ -#!/usr/bin/python3 -# mari von steinkirch @2013 -# steinkirch at gmail - - - -def number_letter_counts(n): - dict_lett = build_dict(n) - sum_letter = 0 - for item in dict_lett: - sum_letter += dict_lett[item] - return sum_letter - - -def build_dict(n): - lett_dict = {} - numbers = (x for x in range(1, n+1)) - dec = ['one', 'two', 'three', 'four', 'five', 'six', 'seven', 'eight', 'nine', 'ten', 'eleven', 'twelve', 'thirteen', 'fourteen', 'fifteen', 'sixteen', 'seventeen', 'eighteen', 'nineteen'] - ties = ['twenty', 'thirty', 'forty', 'fifty', 'sixty', 'seventy', 'eighty', 'ninety'] - - for number in numbers: - if 1 <= number < 20: - lett_dict[number] = len(dec[number-1]) - elif 20 <= number < 100: - index_dec = number//10 - index_num = number%10 - if index_num == 0: - lett_dict[number] = len(ties[index_dec-2]) - else: - lett_dict[number] = len(ties[index_dec-2]) + len(dec[index_num-1]) - elif 100 <= number < 1000: - index_hun = number//100 - index_dec = number%100 - if index_dec == 0: - lett_dict[number] = len(dec[index_hun-1]) + len('hundred') - else: - if 1 <= index_dec < 20: - lett_dict[number] = len(dec[index_hun-1]) + len('hundred') + len('and') + len(dec[index_dec-1]) - elif 20 <= index_dec < 100: - index_dec2 = index_dec//10 - index_num = index_dec%10 - if index_num == 0: - lett_dict[number] = len(dec[index_hun-1]) + len('hundred') + len('and') + len(ties[index_dec2-2]) - else: - lett_dict[number] = len(dec[index_hun-1]) + len('hundred') + len('and') + len(ties[index_dec2-2]) + len(dec[index_num-1]) - elif number == 1000: - lett_dict[number] = len('onethousand') - - return lett_dict - - -def main(): - import time - start = time.time() - - assert(number_letter_counts(5) == 19) - print(number_letter_counts(1000)) - elapsed = (time.time() - start) - print('Tests Passed!\n It took %s seconds to run them.' % (elapsed)) - -if __name__ == '__main__': - main() - diff --git a/src/further_examples/project_euler/number_spiral.py b/src/further_examples/project_euler/number_spiral.py deleted file mode 100644 index 387146d..0000000 --- a/src/further_examples/project_euler/number_spiral.py +++ /dev/null @@ -1,39 +0,0 @@ -#!/usr/bin/python3 -# mari von steinkirch @2013 -# steinkirch at gmail - -def number_spiral(spiral): - - - return rows, mid - -def make_spiral(n): - spiral = [] - row = rows//2 - col = col//2 - count = 1 - while row < n: - while col < n: - spiral[col][row] = count - count += 1 - if count%2 == 0: - col += 1 - else: - row += 1 - - return spiral - -def main(): - import time - start = time.time() - - n = 5 - spiral = make_spiral(n) - print(number_spiral(spiral))# 101 - - elapsed = (time.time() - start) - print('Tests Passed!\n It took %s seconds to run them.' % (elapsed)) - -if __name__ == '__main__': - main() - diff --git a/src/further_examples/project_euler/power_digit_sum.py b/src/further_examples/project_euler/power_digit_sum.py deleted file mode 100644 index a47d1db..0000000 --- a/src/further_examples/project_euler/power_digit_sum.py +++ /dev/null @@ -1,22 +0,0 @@ -#!/usr/bin/python3 -# mari von steinkirch @2013 -# steinkirch at gmail - - -def power_digit_sum(n): - number = str(2**n) - sum_res = 0 - for i in number: - sum_res += int(i) - return sum_res - - - -def test_(): - assert(power_digit_sum(15) == 26) - print(power_digit_sum(1000)) - print('Tests Passed!') - -if __name__ == '__main__': - test_() - diff --git a/src/further_examples/project_euler/quad_primes.py b/src/further_examples/project_euler/quad_primes.py deleted file mode 100644 index af84e3f..0000000 --- a/src/further_examples/project_euler/quad_primes.py +++ /dev/null @@ -1,50 +0,0 @@ -#!/usr/bin/python3 -# mari von steinkirch @2013 -# steinkirch at gmail - -def quad_form(n, a, b): - return n**2 + a*n + b - -def isPrime(n): - n = abs(int(n)) - if n < 2: - return False - if n == 2: - return True - if not n & 1: - return False - for x in range(3, int(n**0.5)+1, 2): - if n % x == 0: - return False - return True - -def quad_primes(a, b): - count_max = 0 - coef = () - for aa in range(-a, a): - for bb in range(-b, b): - n = 0 - while True: - number = quad_form(n, aa, bb) - if isPrime(number): - n += 1 - else: - if n > count_max: - count_max = n - coef = (aa, bb) - break - return coef(0)*coef(1), coef - - -def main(): - import time - start = time.time() - - print(quad_primes(1000, 1000)) - - elapsed = (time.time() - start) - print('Tests Passed!\n It took %s seconds to run them.' % (elapsed)) - -if __name__ == '__main__': - main() - diff --git a/src/further_examples/project_euler/self_powers.py b/src/further_examples/project_euler/self_powers.py deleted file mode 100644 index 1fb2420..0000000 --- a/src/further_examples/project_euler/self_powers.py +++ /dev/null @@ -1,29 +0,0 @@ -#!/usr/bin/python3 -# mari von steinkirch @2013 -# steinkirch at gmail - -def self_powers(power, digits): - sum_total = 0 - for pow in range(1, power+1): - sum_total += pow**pow - sum_total_str = str(sum_total) - last_digits = '' - for i, c in enumerate(sum_total_str[-digits:]): - last_digits += c - return int(last_digits) - - -def main(): - import time - start = time.time() - - - assert(self_powers(10, len('10405071317')) == 10405071317) - print(self_powers(1000, 10)) - - elapsed = (time.time() - start) - print('Tests Passed!\n It took %s seconds to run them.' % (elapsed)) - -if __name__ == '__main__': - main() - diff --git a/src/further_examples/project_euler/smallest_multiple.py b/src/further_examples/project_euler/smallest_multiple.py deleted file mode 100644 index 23d3e4e..0000000 --- a/src/further_examples/project_euler/smallest_multiple.py +++ /dev/null @@ -1,32 +0,0 @@ -#!/usr/bin/python3 - -def smallest_multiple(n): - set1 = set([x for x in range(1, n+1)]) - set2 = set() - for i in range(len(set1), 0, -1): - for j in range(1, i): - if i%j == 0: - set2.add(j) - set1 = set1 - set2 - res_num = n*n - while True: - for i in set1: - missing_div = False - if res_num%i: - missing_div = True - shift = res_num%i - break - if not missing_div: return res_num - res_num += 1 or shift - shift = 0 - - - - -def test_(): - assert(smallest_multiple(10) == 2520) - print(smallest_multiple(20)) - print('Tests Passed!') - -if __name__ == '__main__': - test_() diff --git a/src/further_examples/project_euler/special_pyt.py b/src/further_examples/project_euler/special_pyt.py deleted file mode 100644 index 2fa2dde..0000000 --- a/src/further_examples/project_euler/special_pyt.py +++ /dev/null @@ -1,26 +0,0 @@ -#!/usr/bin/python3 -# mari von steinkirch @2013 -# steinkirch at gmail - - - -def special_pyt(n): - for i in range(3, n): - for j in range(i+1, n): - c = calc_c(i,j) - if i + j + c == n: - return i*j*c - -def calc_c(a, b): - return (a**2 + b**2)**0.5 - - - -def main(): - assert(special_pyt(3+4+5) == (3*4*5)) - print(special_pyt(1000)) - print('Tests Passed!') - -if __name__ == '__main__': - main() - diff --git a/src/further_examples/project_euler/square_dig_chains.py b/src/further_examples/project_euler/square_dig_chains.py deleted file mode 100644 index 12b67b2..0000000 --- a/src/further_examples/project_euler/square_dig_chains.py +++ /dev/null @@ -1,38 +0,0 @@ -#!/usr/bin/python3 -# mari von steinkirch @2013 -# steinkirch at gmail - -def calculate_chain(n): - n_str = str(n) - while n_str != 1 or n_str != 89: - n_str = str(n_str) - sum_here = 0 - for d in n_str: - sum_here += int(d)**2 - n_str = sum_here - if n_str == 89: - return 1 - if n_str == 1: - return 0 - - -def square_dig_chains(n): - count = 0 - for i in range(1, n+1): - count += calculate_chain(i) - return count - - - -def main(): - import time - start = time.time() - - print(square_dig_chains(10**7)) - - elapsed = (time.time() - start) - print('Tests Passed!\n It took %s seconds to run them.' % (elapsed)) - -if __name__ == '__main__': - main() - diff --git a/src/further_examples/project_euler/sum_square_diff.py b/src/further_examples/project_euler/sum_square_diff.py deleted file mode 100644 index 8cbc368..0000000 --- a/src/further_examples/project_euler/sum_square_diff.py +++ /dev/null @@ -1,21 +0,0 @@ -#!/usr/bin/python3 -# mari von steinkirch @2013 -# steinkirch at gmail - - -def sum_square_diff(n): - sq_sum, sum_sq = 0, 0 - for i in range(1, n+1): - sum_sq += i**2 - sq_sum += i - sq_sum = sq_sum **2 - return sq_sum - sum_sq - -def main(): - assert(sum_square_diff(10) == 2640) - print(sum_square_diff(100)) - print('Tests Passed!') - -if __name__ == '__main__': - main() - diff --git a/src/further_examples/project_euler/summation_primes.py b/src/further_examples/project_euler/summation_primes.py deleted file mode 100644 index fb53b56..0000000 --- a/src/further_examples/project_euler/summation_primes.py +++ /dev/null @@ -1,24 +0,0 @@ -#!/usr/bin/python3 -# mari von steinkirch @2013 -# steinkirch at gmail - -from findstprime import is_prime - -def summation_primes(n): - candidate = 2 - prime_set = set() - while candidate < n: - if is_prime(candidate, prime_set): - prime_set.add(candidate) - candidate +=1 - return sum(prime_set) - - -def main(): - assert(summation_primes(10) == 17) - print(summation_primes(2000000)) - print('Tests Passed!') - -if __name__ == '__main__': - main() - diff --git a/src/further_examples/more_algorithm_exercises/queues_stacks/animal_shelter.py b/src/further_examples/queues_stacks/animal_shelter.py similarity index 100% rename from src/further_examples/more_algorithm_exercises/queues_stacks/animal_shelter.py rename to src/further_examples/queues_stacks/animal_shelter.py diff --git a/src/further_examples/more_algorithm_exercises/queues_stacks/queue_2_stacks.py b/src/further_examples/queues_stacks/queue_2_stacks.py similarity index 100% rename from src/further_examples/more_algorithm_exercises/queues_stacks/queue_2_stacks.py rename to src/further_examples/queues_stacks/queue_2_stacks.py diff --git a/src/further_examples/more_algorithm_exercises/queues_stacks/setofStacks.py b/src/further_examples/queues_stacks/setofStacks.py similarity index 100% rename from src/further_examples/more_algorithm_exercises/queues_stacks/setofStacks.py rename to src/further_examples/queues_stacks/setofStacks.py diff --git a/src/further_examples/more_algorithm_exercises/queues_stacks/setofStacksList.py b/src/further_examples/queues_stacks/setofStacksList.py similarity index 100% rename from src/further_examples/more_algorithm_exercises/queues_stacks/setofStacksList.py rename to src/further_examples/queues_stacks/setofStacksList.py diff --git a/src/further_examples/more_algorithm_exercises/queues_stacks/sort_stack.py b/src/further_examples/queues_stacks/sort_stack.py similarity index 100% rename from src/further_examples/more_algorithm_exercises/queues_stacks/sort_stack.py rename to src/further_examples/queues_stacks/sort_stack.py diff --git a/src/further_examples/more_algorithm_exercises/queues_stacks/stackMinElemO1.py b/src/further_examples/queues_stacks/stackMinElemO1.py similarity index 100% rename from src/further_examples/more_algorithm_exercises/queues_stacks/stackMinElemO1.py rename to src/further_examples/queues_stacks/stackMinElemO1.py diff --git a/src/further_examples/more_algorithm_exercises/queues_stacks/stack_.py b/src/further_examples/queues_stacks/stack_.py similarity index 100% rename from src/further_examples/more_algorithm_exercises/queues_stacks/stack_.py rename to src/further_examples/queues_stacks/stack_.py diff --git a/src/further_examples/more_algorithm_exercises/queues_stacks/towers_of_hanoi.py b/src/further_examples/queues_stacks/towers_of_hanoi.py similarity index 100% rename from src/further_examples/more_algorithm_exercises/queues_stacks/towers_of_hanoi.py rename to src/further_examples/queues_stacks/towers_of_hanoi.py diff --git a/src/further_examples/more_algorithm_exercises/searching/binary_search.py b/src/further_examples/searching/binary_search.py similarity index 100% rename from src/further_examples/more_algorithm_exercises/searching/binary_search.py rename to src/further_examples/searching/binary_search.py diff --git a/src/further_examples/more_algorithm_exercises/searching/binary_search_matrix.py b/src/further_examples/searching/binary_search_matrix.py similarity index 100% rename from src/further_examples/more_algorithm_exercises/searching/binary_search_matrix.py rename to src/further_examples/searching/binary_search_matrix.py diff --git a/src/further_examples/more_algorithm_exercises/searching/find_item_rotated_sorted_array.py b/src/further_examples/searching/find_item_rotated_sorted_array.py similarity index 100% rename from src/further_examples/more_algorithm_exercises/searching/find_item_rotated_sorted_array.py rename to src/further_examples/searching/find_item_rotated_sorted_array.py diff --git a/src/further_examples/more_algorithm_exercises/searching/find_str_array_with_empty_str.py b/src/further_examples/searching/find_str_array_with_empty_str.py similarity index 100% rename from src/further_examples/more_algorithm_exercises/searching/find_str_array_with_empty_str.py rename to src/further_examples/searching/find_str_array_with_empty_str.py diff --git a/src/further_examples/more_algorithm_exercises/sorting/1.dat b/src/further_examples/sorting/1.dat similarity index 100% rename from src/further_examples/more_algorithm_exercises/sorting/1.dat rename to src/further_examples/sorting/1.dat diff --git a/src/further_examples/more_algorithm_exercises/sorting/2.dat b/src/further_examples/sorting/2.dat similarity index 100% rename from src/further_examples/more_algorithm_exercises/sorting/2.dat rename to src/further_examples/sorting/2.dat diff --git a/src/further_examples/more_algorithm_exercises/sorting/3.dat b/src/further_examples/sorting/3.dat similarity index 100% rename from src/further_examples/more_algorithm_exercises/sorting/3.dat rename to src/further_examples/sorting/3.dat diff --git a/src/further_examples/more_algorithm_exercises/sorting/merge_sort.py b/src/further_examples/sorting/merge_sort.py similarity index 100% rename from src/further_examples/more_algorithm_exercises/sorting/merge_sort.py rename to src/further_examples/sorting/merge_sort.py diff --git a/src/further_examples/more_algorithm_exercises/sorting/merge_sorted_things.py b/src/further_examples/sorting/merge_sorted_things.py similarity index 100% rename from src/further_examples/more_algorithm_exercises/sorting/merge_sorted_things.py rename to src/further_examples/sorting/merge_sorted_things.py diff --git a/src/further_examples/more_algorithm_exercises/sorting/quick_sort.py b/src/further_examples/sorting/quick_sort.py similarity index 100% rename from src/further_examples/more_algorithm_exercises/sorting/quick_sort.py rename to src/further_examples/sorting/quick_sort.py diff --git a/src/further_examples/more_algorithm_exercises/sorting/sort_anagrams_together.py b/src/further_examples/sorting/sort_anagrams_together.py similarity index 100% rename from src/further_examples/more_algorithm_exercises/sorting/sort_anagrams_together.py rename to src/further_examples/sorting/sort_anagrams_together.py diff --git a/src/further_examples/top_coder/tco2013_round3_3b_div1.py b/src/further_examples/top_coder/tco2013_round3_3b_div1.py deleted file mode 100644 index 491ab8f..0000000 --- a/src/further_examples/top_coder/tco2013_round3_3b_div1.py +++ /dev/null @@ -1,70 +0,0 @@ -#!/usr/bin/python3 -# mari von steinkirch @2013 -# steinkirch at gmail - - - -def findToneDiff(tones): - tonesDiff = [] - n = len(tones) - for i, tone in enumerate(tones): - for j in range(i+1, len(tones)): - sum_here = abs(tone - tones[j]) - tonesDiff.append([sum_here, i, j]) - return sorted(tonesDiff) - -def findAllPossible(duration, tones, T): - tonesDiff = findToneDiff(tones) - sumsTone1 = [(song, i) for i, song in enumerate(duration) if song <= T] - sumsTone2 = [] - for song in tonesDiff: - sum_here = song[0] + duration[song[1]] + duration[song[2]] - if sum_here <= T: - sumsTone2.append((sum_here, song[1], song[2], 2)) - return sumsTone1, sumsTone2 - - -def findAllPossibleNext(sumsTone, T, n_music): - sumsTone2 = [] - for i, song1 in enumerate(sumsTone): - index1 = song1[1] - for j in range(i+1, len(sumsTone)): - song2 = sumsTone[j] - index2 = song2[1] - if index1 == index2: - sum_here = song1[0] + song2[0] - if sum_here < T: - sumsTone2.append((sum_here, song2[1], song2[2], n_music)) - - - return sumsTone2 - - -def maxSongs(duration, tones, T): - - if min(duration) >= T: - return 0 - - sumsTone1, sumsTone = findAllPossible(duration, tones, T) - if not sumsTone: - return 1 - - while sumsTone: - n_music = sumsTone[0][3]+1 - sumsTone = findAllPossibleNext(sumsTone, T, n_music) - if not sumsTone: - return n_music - - - -def tests_250(): - print(maxSongs([3, 5, 4, 11], [2, 1, 3, 1], 17)) #3 - print(maxSongs([9, 11, 13, 17], [2, 1, 3, 4], 20)) #1 - print(maxSongs([100, 200, 300], [1,2,3], 99)) #0 - print(maxSongs([87,21,20,73,97,57,12,80,86,97,98,85,41,12,89,15,41,17,68,37,21,1,9,65,4,67,38,91,46,82,7,98,21,70,99,41,21,65,11,1,8,12,77,62,52,69,56,33,98,97], [88,27,89,2,96,32,4,93,89,50,58,70,15,48,31,2,27,20,31,3,23,86,69,12,59,61,85,67,77,34,29,3,75,42,50,37,56,45,51,68,89,17,4,47,9,14,29,59,43,3], 212)) - - - -if __name__ == '__main__': - tests_250() - diff --git a/src/further_examples/more_algorithm_exercises/trees_graphs/binary_search_tree.py b/src/further_examples/trees_graphs/binary_search_tree.py similarity index 100% rename from src/further_examples/more_algorithm_exercises/trees_graphs/binary_search_tree.py rename to src/further_examples/trees_graphs/binary_search_tree.py diff --git a/src/further_examples/more_algorithm_exercises/trees_graphs/binary_tree.py b/src/further_examples/trees_graphs/binary_tree.py similarity index 100% rename from src/further_examples/more_algorithm_exercises/trees_graphs/binary_tree.py rename to src/further_examples/trees_graphs/binary_tree.py diff --git a/src/further_examples/more_algorithm_exercises/trees_graphs/traversals.py b/src/further_examples/trees_graphs/traversals.py similarity index 100% rename from src/further_examples/more_algorithm_exercises/trees_graphs/traversals.py rename to src/further_examples/trees_graphs/traversals.py