diff --git a/languages/c++/CMakeLists.txt b/c++/CMakeLists.txt similarity index 100% rename from languages/c++/CMakeLists.txt rename to c++/CMakeLists.txt diff --git a/languages/c++/code/babylonian.cc b/c++/code/babylonian.cc similarity index 100% rename from languages/c++/code/babylonian.cc rename to c++/code/babylonian.cc diff --git a/languages/c++/code/binomialExpansion.cc b/c++/code/binomialExpansion.cc similarity index 100% rename from languages/c++/code/binomialExpansion.cc rename to c++/code/binomialExpansion.cc diff --git a/languages/c++/code/dice.cc b/c++/code/dice.cc similarity index 100% rename from languages/c++/code/dice.cc rename to c++/code/dice.cc diff --git a/languages/c++/code/karatsuba.cc b/c++/code/karatsuba.cc similarity index 100% rename from languages/c++/code/karatsuba.cc rename to c++/code/karatsuba.cc diff --git a/languages/c++/code/nthRoot.cc b/c++/code/nthRoot.cc similarity index 100% rename from languages/c++/code/nthRoot.cc rename to c++/code/nthRoot.cc diff --git a/languages/c++/code/pascal.cc b/c++/code/pascal.cc similarity index 100% rename from languages/c++/code/pascal.cc rename to c++/code/pascal.cc diff --git a/languages/c++/code/squareForm.cc b/c++/code/squareForm.cc similarity index 100% rename from languages/c++/code/squareForm.cc rename to c++/code/squareForm.cc diff --git a/challenges/daily-programmer/#390 - Number of 1s.py b/challenges/daily-programmer/#390 - Number of 1s.py deleted file mode 100644 index 5d34954..0000000 --- a/challenges/daily-programmer/#390 - Number of 1s.py +++ /dev/null @@ -1,16 +0,0 @@ -def count1(n): - x = str(n) - count = 0 - for index, digit in enumerate(x[::-1]): - digit = int(digit) - if digit != 0: - if digit == 1: - numberAfter = x[len(x) - index:] or '0' - count += int(numberAfter) + 1 - else: - count += 10 ** index - count += int(10 ** (index - 1) * index * digit) - return count - - -print(count1(3**35)) diff --git a/challenges/daily-programmer/#391 - ABACABA.py b/challenges/daily-programmer/#391 - ABACABA.py deleted file mode 100644 index 7d3f06a..0000000 --- a/challenges/daily-programmer/#391 - ABACABA.py +++ /dev/null @@ -1,14 +0,0 @@ -from string import ascii_lowercase - -def abacaba(n): - output = '' - currLetter = 0 - for i in range(n): - output = '{0}{1}{2}'.format(output, ascii_lowercase[currLetter], output) - currLetter = currLetter + 1 - if currLetter > 25: - currLetter = 0 - return output - -out = abacaba(10) -print(out) diff --git a/challenges/daily-programmer/#393 - Making Change.py b/challenges/daily-programmer/#393 - Making Change.py deleted file mode 100644 index 1b64e9b..0000000 --- a/challenges/daily-programmer/#393 - Making Change.py +++ /dev/null @@ -1,16 +0,0 @@ -COINTYPES = [500, 100, 25, 10, 5, 1] - -class Change(): - def __init__(self, value): - self.value = value # Save the value - self.coins = {} # Create a dictionary for the coins - curr = value # Make a temporary variable to alter - for TYPE in COINTYPES: # For each coin type - index = COINTYPES.index(TYPE) # Get the index - if index > 0: # If the coin type is not at the first index - curr = curr % COINTYPES[index - 1] # Work out the remainder - self.coins[TYPE] = curr // TYPE # And work out how many of the coin type fits into that remainder - self.total = sum(self.coins.values()) # How many coins are there in total? - -change = Change(123456) -print(change.coins, change.total) diff --git a/challenges/daily-programmer/readme.md b/challenges/daily-programmer/readme.md deleted file mode 100644 index 8b299fb..0000000 --- a/challenges/daily-programmer/readme.md +++ /dev/null @@ -1,16 +0,0 @@ -
- -

r/dailyprogrammer

-
- -[The Subreddit](https://reddit.com/r/dailyprogrammer) - -- #390 - Number of 1s - - [Solution](%23390%20-%20Number%20of%201s.py) - - [Reddit Post](https://www.reddit.com/r/dailyprogrammer/comments/neg49j/20210517_challenge_390_difficult_number_of_1s/) -- #391 - ABACABA - - [Solution](%23391%20-%20ABACABA.py) - - [Reddit Post](https://www.reddit.com/r/dailyprogrammer/comments/njxq95/20210524_challenge_391_easy_the_abacaba_sequence/) -- #393 - Making Change - - [Solution](%23393%20-%20Making%20Change.py) - - [Reddit Post](https://www.reddit.com/r/dailyprogrammer/comments/nucsik/20210607_challenge_393_easy_making_change/) diff --git a/challenges/edabit/Truncatable Primes.py b/challenges/edabit/Truncatable Primes.py deleted file mode 100644 index f4c1af6..0000000 --- a/challenges/edabit/Truncatable Primes.py +++ /dev/null @@ -1,66 +0,0 @@ -import math - -class InputNotPrime(Exception): - pass - -def isPrime(number): - if number % 2 == 0 or type(math.sqrt(number)) != float: - return False - - for i in range(3, number, 2): - if number % i == 0: - return False - return True - -def isTruncatablePrime(number): - if '0' in str(number): - return False - - isRight = isRightTruncatablePrime(number) - isLeft = isLeftTruncatablePrime(number) - - if isRight and isLeft: - return 'both' - elif isRight: - return 'right' - elif isLeft: - return 'left' - else: - return False - -def isRightTruncatablePrime(number): - numbers = [''] - - for digit in reversed(list(str(number))): - numbers.append(digit + numbers[len(numbers) - 1]) - numbers.remove('') - - for number in numbers: - if not isPrime(int(number)): - return False - return True - -def isLeftTruncatablePrime(number): - numbers = [''] - - for digit in list(str(number)): - numbers.append(numbers[len(numbers) - 1] + digit) - numbers.remove('') - - for number in numbers: - if not isPrime(int(number)): - return False - return True - -while True: - try: - n = int(input("Please enter a prime number: ")) - if not isPrime(n): - raise InputNotPrime - break - except ValueError: - print('Please make sure your input is an integer!') - except InputNotPrime: - print('Please make sure your input is prime!') - -print(isTruncatablePrime(n)) diff --git a/challenges/euler/.gitignore b/challenges/euler/.gitignore deleted file mode 100644 index 378eac2..0000000 --- a/challenges/euler/.gitignore +++ /dev/null @@ -1 +0,0 @@ -build diff --git a/challenges/euler/constants.js b/challenges/euler/constants.js deleted file mode 100644 index 656a96c..0000000 --- a/challenges/euler/constants.js +++ /dev/null @@ -1,36 +0,0 @@ -const path = require('path'); - -module.exports = { - resources: path.join(__dirname, 'resources'), - src: path.join(__dirname, 'src'), - thoughts: path.join(__dirname, 'thoughts'), - root: __dirname, - alphabet: [ - 'a', - 'b', - 'c', - 'd', - 'e', - 'f', - 'g', - 'h', - 'i', - 'j', - 'k', - 'l', - 'm', - 'n', - 'o', - 'p', - 'q', - 'r', - 's', - 't', - 'u', - 'v', - 'w', - 'x', - 'y', - 'z' - ] -}; diff --git a/challenges/euler/package.json b/challenges/euler/package.json deleted file mode 100644 index b8815a8..0000000 --- a/challenges/euler/package.json +++ /dev/null @@ -1,24 +0,0 @@ -{ - "name": "project-euler", - "private": true, - "scripts": { - "build": "gulp build", - "start": "node scripts/run", - "new": "node scripts/generate", - "generate": "node scripts/generate" - }, - "devDependencies": { - "@swc/core": "^1.2.125", - "@swc/helpers": "^0.3.2", - "@types/node": "^16.11.6", - "axios": "^0.24.0", - "chalk": "^4.1.2", - "cheerio": "^1.0.0-rc.10", - "execution-time": "^1.4.1", - "inquirer": "^8.2.0", - "ms": "^2.1.3", - "regenerator-runtime": "^0.13.9", - "ts-node": "^10.4.0", - "typescript": "^4.4.4" - } -} diff --git a/challenges/euler/pnpm-lock.yaml b/challenges/euler/pnpm-lock.yaml deleted file mode 100644 index 073eb34..0000000 --- a/challenges/euler/pnpm-lock.yaml +++ /dev/null @@ -1,1020 +0,0 @@ -lockfileVersion: 5.4 - -specifiers: - '@swc/core': ^1.2.125 - '@swc/helpers': ^0.3.2 - '@types/node': ^16.11.6 - axios: ^0.24.0 - chalk: ^4.1.2 - cheerio: ^1.0.0-rc.10 - execution-time: ^1.4.1 - inquirer: ^8.2.0 - ms: ^2.1.3 - regenerator-runtime: ^0.13.9 - ts-node: ^10.4.0 - typescript: ^4.4.4 - -devDependencies: - '@swc/core': 1.2.125 - '@swc/helpers': 0.3.2 - '@types/node': 16.11.6 - axios: 0.24.0 - chalk: 4.1.2 - cheerio: 1.0.0-rc.10 - execution-time: 1.4.1 - inquirer: 8.2.0 - ms: 2.1.3 - regenerator-runtime: 0.13.9 - ts-node: 10.4.0_mjrvdycjxafrikwlftsiu72wky - typescript: 4.4.4 - -packages: - /@cspotcode/source-map-consumer/0.8.0: - resolution: - { - integrity: sha512-41qniHzTU8yAGbCp04ohlmSrZf8bkf/iJsl3V0dRGsQN/5GFfx+LbCSsCpp2gqrqjTVg/K6O8ycoV35JIwAzAg== - } - engines: { node: '>= 12' } - dev: true - - /@cspotcode/source-map-support/0.7.0: - resolution: - { - integrity: sha512-X4xqRHqN8ACt2aHVe51OxeA2HjbcL4MqFqXkrmQszJ1NOUuUu5u6Vqx/0lZSVNku7velL5FC/s5uEAj1lsBMhA== - } - engines: { node: '>=12' } - dependencies: - '@cspotcode/source-map-consumer': 0.8.0 - dev: true - - /@napi-rs/triples/1.1.0: - resolution: - { - integrity: sha512-XQr74QaLeMiqhStEhLn1im9EOMnkypp7MZOwQhGzqp2Weu5eQJbpPxWxixxlYRKWPOmJjsk6qYfYH9kq43yc2w== - } - dev: true - - /@node-rs/helper/1.3.0: - resolution: - { - integrity: sha512-KPS0EBA1bXtf96IL7wr5bFHxhL2KCZ6kI/hkyLG7nzEq2cDq8pJhOhcJDOLXIPh5J2LEJ5eXyjDTWDFg5eRypw== - } - dependencies: - '@napi-rs/triples': 1.1.0 - dev: true - - /@swc/core-android-arm-eabi/1.2.125: - resolution: - { - integrity: sha512-ll7G4yyRmjxRBvof9BYr+akH7RzLLXXVQ9rppykeqvJLnnvtun3Bds2Q2u35XIgJtoIDLNvP6ImZsv+I1IvgmQ== - } - engines: { node: '>=10' } - cpu: [arm] - os: [android] - requiresBuild: true - dev: true - optional: true - - /@swc/core-android-arm64/1.2.125: - resolution: - { - integrity: sha512-q2UR+cSnZxJJ9Ooo3qY9fnjHekL+F2wEsOuWcjcPCcaF/zydHoTnqk1eAVfH047CafS443hAXTO8F+kMbVeKEg== - } - engines: { node: '>=10' } - cpu: [arm64] - os: [android] - requiresBuild: true - dev: true - optional: true - - /@swc/core-darwin-arm64/1.2.125: - resolution: - { - integrity: sha512-US2HR6scoa/l5C9NCA9YYsU89cYtXAYJq2j9vKmP27BoglxmtZyIrFFebt2ogL84g0fEcxelG0vn15RTDXbSIw== - } - engines: { node: '>=10' } - cpu: [arm64] - os: [darwin] - requiresBuild: true - dev: true - optional: true - - /@swc/core-darwin-x64/1.2.125: - resolution: - { - integrity: sha512-FuDgS8XwrxXMrV66MasgE3ucU/lrHUY7RK3bAdC2XelrwFgbCzOqOUwfsiGaceJa4yPlqXbfsjj5JKxXKxnDnQ== - } - engines: { node: '>=10' } - cpu: [x64] - os: [darwin] - requiresBuild: true - dev: true - optional: true - - /@swc/core-freebsd-x64/1.2.125: - resolution: - { - integrity: sha512-D+K/VJzFRyDnhwAswGBrSa4G6Um+VUPRX7z29HX7KLLZTHKhnr2Rbnzu/rN4hKgf0AT93rMF21qbbmXzgtJNxA== - } - engines: { node: '>=10' } - cpu: [x64] - os: [freebsd] - requiresBuild: true - dev: true - optional: true - - /@swc/core-linux-arm-gnueabihf/1.2.125: - resolution: - { - integrity: sha512-hmL+zOPlsqj5yivEDIeJbQ1sdVPG6au7RSq6yhykI9LabsrqD+oexBDjFw+oKoO4cEd50MJyiO7v241a8U9vqA== - } - engines: { node: '>=10' } - cpu: [arm] - os: [linux] - requiresBuild: true - dev: true - optional: true - - /@swc/core-linux-arm64-gnu/1.2.125: - resolution: - { - integrity: sha512-uS/ZVyXusKcyBhUTK/QiD5VJvKV+YDLCnFWKcDthsUwYSm7Ap6sJpPIoDoxG1pAaKqJdls+6TihFQNezLXyRvQ== - } - engines: { node: '>=10' } - cpu: [arm64] - os: [linux] - requiresBuild: true - dev: true - optional: true - - /@swc/core-linux-arm64-musl/1.2.125: - resolution: - { - integrity: sha512-yhSkW9tyA/FCybyt2ahZStZzhNyPeGNWty/0PWSStDEd5U194BrvsdLGcj7EcAqYKkR9nhhjJSpGDY5765pCLg== - } - engines: { node: '>=10' } - cpu: [arm64] - os: [linux] - requiresBuild: true - dev: true - optional: true - - /@swc/core-linux-x64-gnu/1.2.125: - resolution: - { - integrity: sha512-34u1Ujzym+rQK958/FLoh3p0tQQJYkvRlaKSbsZm2IPFeYlFFhs7g95Gfmzlm7FWpgxW/kWgPWiQyMm8zz/64A== - } - engines: { node: '>=10' } - cpu: [x64] - os: [linux] - requiresBuild: true - dev: true - optional: true - - /@swc/core-linux-x64-musl/1.2.125: - resolution: - { - integrity: sha512-6DsLBvCykRna3xP7afXGwNxNAazfsPuC54ptpSZsT02a7uy5l3vLQ+sRxqrQwAXz7AXoVQz3Zb6U8OivdpLwTg== - } - engines: { node: '>=10' } - cpu: [x64] - os: [linux] - requiresBuild: true - dev: true - optional: true - - /@swc/core-win32-arm64-msvc/1.2.125: - resolution: - { - integrity: sha512-jJfX/kc5Rnk4wYFOXyT4LK2k0gj4ygjDtEZdfTSPCogcIfWMiVA93dP81e4/R9rfUHen4jgHQBCt5FKeNXVOaQ== - } - engines: { node: '>=10' } - cpu: [arm64] - os: [win32] - requiresBuild: true - dev: true - optional: true - - /@swc/core-win32-ia32-msvc/1.2.125: - resolution: - { - integrity: sha512-q9Zo4f+PlfK2806BPsTRM0C1wzchD+hdayeJ29+MnkI9LXwhziJ6RPBoCwp0s1U/ovBFVdQ/j96B5GCgD6py5Q== - } - engines: { node: '>=10' } - cpu: [ia32] - os: [win32] - requiresBuild: true - dev: true - optional: true - - /@swc/core-win32-x64-msvc/1.2.125: - resolution: - { - integrity: sha512-EdO2GNHfN3g7MAHc2h2eKd52bwvyA4BgNUlixz9DQoq2hhKEsiTYmjBlxdxqu4jx1v1QMnKtzxh7iKWk3a3TSQ== - } - engines: { node: '>=10' } - cpu: [x64] - os: [win32] - requiresBuild: true - dev: true - optional: true - - /@swc/core/1.2.125: - resolution: - { - integrity: sha512-i3F9ywmT+KZjH99zXLKhp1nr0k9s4RNM1wu6b0iIBofvQe9mfvkY1KrvmQlpS+FynjkE2R3OCElgbDQuf6275w== - } - engines: { node: '>=10' } - dependencies: - '@node-rs/helper': 1.3.0 - optionalDependencies: - '@swc/core-android-arm-eabi': 1.2.125 - '@swc/core-android-arm64': 1.2.125 - '@swc/core-darwin-arm64': 1.2.125 - '@swc/core-darwin-x64': 1.2.125 - '@swc/core-freebsd-x64': 1.2.125 - '@swc/core-linux-arm-gnueabihf': 1.2.125 - '@swc/core-linux-arm64-gnu': 1.2.125 - '@swc/core-linux-arm64-musl': 1.2.125 - '@swc/core-linux-x64-gnu': 1.2.125 - '@swc/core-linux-x64-musl': 1.2.125 - '@swc/core-win32-arm64-msvc': 1.2.125 - '@swc/core-win32-ia32-msvc': 1.2.125 - '@swc/core-win32-x64-msvc': 1.2.125 - dev: true - - /@swc/helpers/0.3.2: - resolution: - { - integrity: sha512-qEru2uaH1vKZNCZR4rFCUZaflsBP7IWiGcIoQe22qi5tm+HEG/yPdhSba+ZCNTWk2xyYpx/nEFkncDY3orEx3w== - } - dev: true - - /@tsconfig/node10/1.0.8: - resolution: - { - integrity: sha512-6XFfSQmMgq0CFLY1MslA/CPUfhIL919M1rMsa5lP2P097N2Wd1sSX0tx1u4olM16fLNhtHZpRhedZJphNJqmZg== - } - dev: true - - /@tsconfig/node12/1.0.9: - resolution: - { - integrity: sha512-/yBMcem+fbvhSREH+s14YJi18sp7J9jpuhYByADT2rypfajMZZN4WQ6zBGgBKp53NKmqI36wFYDb3yaMPurITw== - } - dev: true - - /@tsconfig/node14/1.0.1: - resolution: - { - integrity: sha512-509r2+yARFfHHE7T6Puu2jjkoycftovhXRqW328PDXTVGKihlb1P8Z9mMZH04ebyajfRY7dedfGynlrFHJUQCg== - } - dev: true - - /@tsconfig/node16/1.0.2: - resolution: - { - integrity: sha512-eZxlbI8GZscaGS7kkc/trHTT5xgrjH3/1n2JDwusC9iahPKWMRvRjJSAN5mCXviuTGQ/lHnhvv8Q1YTpnfz9gA== - } - dev: true - - /@types/node/16.11.6: - resolution: - { - integrity: sha512-ua7PgUoeQFjmWPcoo9khiPum3Pd60k4/2ZGXt18sm2Slk0W0xZTqt5Y0Ny1NyBiN1EVQ/+FaF9NcY4Qe6rwk5w== - } - dev: true - - /acorn-walk/8.2.0: - resolution: - { - integrity: sha512-k+iyHEuPgSw6SbuDpGQM+06HQUa04DZ3o+F6CSzXMvvI5KMvnaEqXe+YVe555R9nn6GPt404fos4wcgpw12SDA== - } - engines: { node: '>=0.4.0' } - dev: true - - /acorn/8.7.0: - resolution: - { - integrity: sha512-V/LGr1APy+PXIwKebEWrkZPwoeoF+w1jiOBUmuxuiUIaOHtob8Qc9BTrYo7VuI5fR8tqsy+buA2WFooR5olqvQ== - } - engines: { node: '>=0.4.0' } - hasBin: true - dev: true - - /ansi-escapes/4.3.2: - resolution: - { - integrity: sha512-gKXj5ALrKWQLsYG9jlTRmR/xKluxHV+Z9QEwNIgCfM1/uwPMCuzVVnh5mwTd+OuBZcwSIMbqssNWRm1lE51QaQ== - } - engines: { node: '>=8' } - dependencies: - type-fest: 0.21.3 - dev: true - - /ansi-regex/5.0.1: - resolution: - { - integrity: sha512-quJQXlTSUGL2LH9SUXo8VwsY4soanhgo6LNSm84E1LBcE8s3O0wpdiRzyR9z/ZZJMlMWv37qOOb9pdJlMUEKFQ== - } - engines: { node: '>=8' } - dev: true - - /ansi-styles/4.3.0: - resolution: - { - integrity: sha512-zbB9rCJAT1rbjiVDb2hqKFHNYLxgtk8NURxZ3IZwD3F6NtxbXZQCnnSi1Lkx+IDohdPlFp222wVALIheZJQSEg== - } - engines: { node: '>=8' } - dependencies: - color-convert: 2.0.1 - dev: true - - /arg/4.1.3: - resolution: - { - integrity: sha512-58S9QDqG0Xx27YwPSt9fJxivjYl432YCwfDMfZ+71RAqUrZef7LrKQZ3LHLOwCS4FLNBplP533Zx895SeOCHvA== - } - dev: true - - /axios/0.24.0: - resolution: - { - integrity: sha512-Q6cWsys88HoPgAaFAVUb0WpPk0O8iTeisR9IMqy9G8AbO4NlpVknrnQS03zzF9PGAWgO3cgletO3VjV/P7VztA== - } - dependencies: - follow-redirects: 1.14.6 - transitivePeerDependencies: - - debug - dev: true - - /base64-js/1.5.1: - resolution: - { - integrity: sha512-AKpaYlHn8t4SVbOHCy+b5+KKgvR4vrsD8vbvrbiQJps7fKDTkjkDry6ji0rUJjC0kzbNePLwzxq8iypo41qeWA== - } - dev: true - - /bl/4.1.0: - resolution: - { - integrity: sha512-1W07cM9gS6DcLperZfFSj+bWLtaPGSOHWhPiGzXmvVJbRLdG82sH/Kn8EtW1VqWVA54AKf2h5k5BbnIbwF3h6w== - } - dependencies: - buffer: 5.7.1 - inherits: 2.0.4 - readable-stream: 3.6.0 - dev: true - - /boolbase/1.0.0: - resolution: { integrity: sha1-aN/1++YMUes3cl6p4+0xDcwed24= } - dev: true - - /buffer/5.7.1: - resolution: - { - integrity: sha512-EHcyIPBQ4BSGlvjB16k5KgAJ27CIsHY/2JBmCRReo48y9rQ3MaUzWX3KVlBa4U7MyX02HdVj0K7C3WaB3ju7FQ== - } - dependencies: - base64-js: 1.5.1 - ieee754: 1.2.1 - dev: true - - /chalk/4.1.2: - resolution: - { - integrity: sha512-oKnbhFyRIXpUuez8iBMmyEa4nbj4IOQyuhc/wy9kY7/WVPcwIO9VA668Pu8RkO7+0G76SLROeyw9CpQ061i4mA== - } - engines: { node: '>=10' } - dependencies: - ansi-styles: 4.3.0 - supports-color: 7.2.0 - dev: true - - /chardet/0.7.0: - resolution: - { - integrity: sha512-mT8iDcrh03qDGRRmoA2hmBJnxpllMR+0/0qlzjqZES6NdiWDcZkCNAk4rPFZ9Q85r27unkiNNg8ZOiwZXBHwcA== - } - dev: true - - /cheerio-select/1.5.0: - resolution: - { - integrity: sha512-qocaHPv5ypefh6YNxvnbABM07KMxExbtbfuJoIie3iZXX1ERwYmJcIiRrr9H05ucQP1k28dav8rpdDgjQd8drg== - } - dependencies: - css-select: 4.2.1 - css-what: 5.1.0 - domelementtype: 2.2.0 - domhandler: 4.3.0 - domutils: 2.8.0 - dev: true - - /cheerio/1.0.0-rc.10: - resolution: - { - integrity: sha512-g0J0q/O6mW8z5zxQ3A8E8J1hUgp4SMOvEoW/x84OwyHKe/Zccz83PVT4y5Crcr530FV6NgmKI1qvGTKVl9XXVw== - } - engines: { node: '>= 6' } - dependencies: - cheerio-select: 1.5.0 - dom-serializer: 1.3.2 - domhandler: 4.3.0 - htmlparser2: 6.1.0 - parse5: 6.0.1 - parse5-htmlparser2-tree-adapter: 6.0.1 - tslib: 2.3.1 - dev: true - - /cli-cursor/3.1.0: - resolution: - { - integrity: sha512-I/zHAwsKf9FqGoXM4WWRACob9+SNukZTd94DWF57E4toouRulbCxcUh6RKUEOQlYTHJnzkPMySvPNaaSLNfLZw== - } - engines: { node: '>=8' } - dependencies: - restore-cursor: 3.1.0 - dev: true - - /cli-spinners/2.6.1: - resolution: - { - integrity: sha512-x/5fWmGMnbKQAaNwN+UZlV79qBLM9JFnJuJ03gIi5whrob0xV0ofNVHy9DhwGdsMJQc2OKv0oGmLzvaqvAVv+g== - } - engines: { node: '>=6' } - dev: true - - /cli-width/3.0.0: - resolution: - { - integrity: sha512-FxqpkPPwu1HjuN93Omfm4h8uIanXofW0RxVEW3k5RKx+mJJYSthzNhp32Kzxxy3YAEZ/Dc/EWN1vZRY0+kOhbw== - } - engines: { node: '>= 10' } - dev: true - - /clone/1.0.4: - resolution: { integrity: sha1-2jCcwmPfFZlMaIypAheco8fNfH4= } - engines: { node: '>=0.8' } - dev: true - - /color-convert/2.0.1: - resolution: - { - integrity: sha512-RRECPsj7iu/xb5oKYcsFHSppFNnsj/52OVTRKb4zP5onXwVF3zVmmToNcOfGC+CRDpfK/U584fMg38ZHCaElKQ== - } - engines: { node: '>=7.0.0' } - dependencies: - color-name: 1.1.4 - dev: true - - /color-name/1.1.4: - resolution: - { - integrity: sha512-dOy+3AuW3a2wNbZHIuMZpTcgjGuLU/uBL/ubcZF9OXbDo8ff4O8yVp5Bf0efS8uEoYo5q4Fx7dY9OgQGXgAsQA== - } - dev: true - - /create-require/1.1.1: - resolution: - { - integrity: sha512-dcKFX3jn0MpIaXjisoRvexIJVEKzaq7z2rZKxf+MSr9TkdmHmsU4m2lcLojrj/FHl8mk5VxMmYA+ftRkP/3oKQ== - } - dev: true - - /css-select/4.2.1: - resolution: - { - integrity: sha512-/aUslKhzkTNCQUB2qTX84lVmfia9NyjP3WpDGtj/WxhwBzWBYUV3DgUpurHTme8UTPcPlAD1DJ+b0nN/t50zDQ== - } - dependencies: - boolbase: 1.0.0 - css-what: 5.1.0 - domhandler: 4.3.0 - domutils: 2.8.0 - nth-check: 2.0.1 - dev: true - - /css-what/5.1.0: - resolution: - { - integrity: sha512-arSMRWIIFY0hV8pIxZMEfmMI47Wj3R/aWpZDDxWYCPEiOMv6tfOrnpDtgxBYPEQD4V0Y/958+1TdC3iWTFcUPw== - } - engines: { node: '>= 6' } - dev: true - - /defaults/1.0.3: - resolution: { integrity: sha1-xlYFHpgX2f8I7YgUd/P+QBnz730= } - dependencies: - clone: 1.0.4 - dev: true - - /diff/4.0.2: - resolution: - { - integrity: sha512-58lmxKSA4BNyLz+HHMUzlOEpg09FV+ev6ZMe3vJihgdxzgcwZ8VoEEPmALCZG9LmqfVoNMMKpttIYTVG6uDY7A== - } - engines: { node: '>=0.3.1' } - dev: true - - /dom-serializer/1.3.2: - resolution: - { - integrity: sha512-5c54Bk5Dw4qAxNOI1pFEizPSjVsx5+bpJKmL2kPn8JhBUq2q09tTCa3mjijun2NfK78NMouDYNMBkOrPZiS+ig== - } - dependencies: - domelementtype: 2.2.0 - domhandler: 4.3.0 - entities: 2.2.0 - dev: true - - /domelementtype/2.2.0: - resolution: - { - integrity: sha512-DtBMo82pv1dFtUmHyr48beiuq792Sxohr+8Hm9zoxklYPfa6n0Z3Byjj2IV7bmr2IyqClnqEQhfgHJJ5QF0R5A== - } - dev: true - - /domhandler/4.3.0: - resolution: - { - integrity: sha512-fC0aXNQXqKSFTr2wDNZDhsEYjCiYsDWl3D01kwt25hm1YIPyDGHvvi3rw+PLqHAl/m71MaiF7d5zvBr0p5UB2g== - } - engines: { node: '>= 4' } - dependencies: - domelementtype: 2.2.0 - dev: true - - /domutils/2.8.0: - resolution: - { - integrity: sha512-w96Cjofp72M5IIhpjgobBimYEfoPjx1Vx0BSX9P30WBdZW2WIKU0T1Bd0kz2eNZ9ikjKgHbEyKx8BB6H1L3h3A== - } - dependencies: - dom-serializer: 1.3.2 - domelementtype: 2.2.0 - domhandler: 4.3.0 - dev: true - - /emoji-regex/8.0.0: - resolution: - { - integrity: sha512-MSjYzcWNOA0ewAHpz0MxpYFvwg6yjy1NG3xteoqz644VCo/RPgnr1/GGt+ic3iJTzQ8Eu3TdM14SawnVUmGE6A== - } - dev: true - - /entities/2.2.0: - resolution: - { - integrity: sha512-p92if5Nz619I0w+akJrLZH0MX0Pb5DX39XOwQTtXSdQQOaYH03S1uIQp4mhOZtAXrxq4ViO67YTiLBo2638o9A== - } - dev: true - - /escape-string-regexp/1.0.5: - resolution: { integrity: sha1-G2HAViGQqN/2rjuyzwIAyhMLhtQ= } - engines: { node: '>=0.8.0' } - dev: true - - /execution-time/1.4.1: - resolution: - { - integrity: sha512-4t9svrTtsXxAEzAs9/tm1R/Voj5AYHqxd72BiLEbGQWJq2PD3tAmW8bXI7Pp0yorjaKshT1+NyKy0ytHlKW4Pg== - } - dependencies: - pretty-hrtime: 1.0.3 - dev: true - - /external-editor/3.1.0: - resolution: - { - integrity: sha512-hMQ4CX1p1izmuLYyZqLMO/qGNw10wSv9QDCPfzXfyFrOaCSSoRfqE1Kf1s5an66J5JZC62NewG+mK49jOCtQew== - } - engines: { node: '>=4' } - dependencies: - chardet: 0.7.0 - iconv-lite: 0.4.24 - tmp: 0.0.33 - dev: true - - /figures/3.2.0: - resolution: - { - integrity: sha512-yaduQFRKLXYOGgEn6AZau90j3ggSOyiqXU0F9JZfeXYhNa+Jk4X+s45A2zg5jns87GAFa34BBm2kXw4XpNcbdg== - } - engines: { node: '>=8' } - dependencies: - escape-string-regexp: 1.0.5 - dev: true - - /follow-redirects/1.14.6: - resolution: - { - integrity: sha512-fhUl5EwSJbbl8AR+uYL2KQDxLkdSjZGR36xy46AO7cOMTrCMON6Sa28FmAnC2tRTDbd/Uuzz3aJBv7EBN7JH8A== - } - engines: { node: '>=4.0' } - peerDependencies: - debug: '*' - peerDependenciesMeta: - debug: - optional: true - dev: true - - /has-flag/4.0.0: - resolution: - { - integrity: sha512-EykJT/Q1KjTWctppgIAgfSO0tKVuZUjhgMr17kqTumMl6Afv3EISleU7qZUzoXDFTAHTDC4NOoG/ZxU3EvlMPQ== - } - engines: { node: '>=8' } - dev: true - - /htmlparser2/6.1.0: - resolution: - { - integrity: sha512-gyyPk6rgonLFEDGoeRgQNaEUvdJ4ktTmmUh/h2t7s+M8oPpIPxgNACWa+6ESR57kXstwqPiCut0V8NRpcwgU7A== - } - dependencies: - domelementtype: 2.2.0 - domhandler: 4.3.0 - domutils: 2.8.0 - entities: 2.2.0 - dev: true - - /iconv-lite/0.4.24: - resolution: - { - integrity: sha512-v3MXnZAcvnywkTUEZomIActle7RXXeedOR31wwl7VlyoXO4Qi9arvSenNQWne1TcRwhCL1HwLI21bEqdpj8/rA== - } - engines: { node: '>=0.10.0' } - dependencies: - safer-buffer: 2.1.2 - dev: true - - /ieee754/1.2.1: - resolution: - { - integrity: sha512-dcyqhDvX1C46lXZcVqCpK+FtMRQVdIMN6/Df5js2zouUsqG7I6sFxitIC+7KYK29KdXOLHdu9zL4sFnoVQnqaA== - } - dev: true - - /inherits/2.0.4: - resolution: - { - integrity: sha512-k/vGaX4/Yla3WzyMCvTQOXYeIHvqOKtnqBduzTHpzpQZzAskKMhZ2K+EnBiSM9zGSoIFeMpXKxa4dYeZIQqewQ== - } - dev: true - - /inquirer/8.2.0: - resolution: - { - integrity: sha512-0crLweprevJ02tTuA6ThpoAERAGyVILC4sS74uib58Xf/zSr1/ZWtmm7D5CI+bSQEaA04f0K7idaHpQbSWgiVQ== - } - engines: { node: '>=8.0.0' } - dependencies: - ansi-escapes: 4.3.2 - chalk: 4.1.2 - cli-cursor: 3.1.0 - cli-width: 3.0.0 - external-editor: 3.1.0 - figures: 3.2.0 - lodash: 4.17.21 - mute-stream: 0.0.8 - ora: 5.4.1 - run-async: 2.4.1 - rxjs: 7.5.4 - string-width: 4.2.3 - strip-ansi: 6.0.1 - through: 2.3.8 - dev: true - - /is-fullwidth-code-point/3.0.0: - resolution: - { - integrity: sha512-zymm5+u+sCsSWyD9qNaejV3DFvhCKclKdizYaJUuHA83RLjb7nSuGnddCHGv0hk+KY7BMAlsWeK4Ueg6EV6XQg== - } - engines: { node: '>=8' } - dev: true - - /is-interactive/1.0.0: - resolution: - { - integrity: sha512-2HvIEKRoqS62guEC+qBjpvRubdX910WCMuJTZ+I9yvqKU2/12eSL549HMwtabb4oupdj2sMP50k+XJfB/8JE6w== - } - engines: { node: '>=8' } - dev: true - - /is-unicode-supported/0.1.0: - resolution: - { - integrity: sha512-knxG2q4UC3u8stRGyAVJCOdxFmv5DZiRcdlIaAQXAbSfJya+OhopNotLQrstBhququ4ZpuKbDc/8S6mgXgPFPw== - } - engines: { node: '>=10' } - dev: true - - /lodash/4.17.21: - resolution: - { - integrity: sha512-v2kDEe57lecTulaDIuNTPy3Ry4gLGJ6Z1O3vE1krgXZNrsQ+LFTGHVxVjcXPs17LhbZVGedAJv8XZ1tvj5FvSg== - } - dev: true - - /log-symbols/4.1.0: - resolution: - { - integrity: sha512-8XPvpAA8uyhfteu8pIvQxpJZ7SYYdpUivZpGy6sFsBuKRY/7rQGavedeB8aK+Zkyq6upMFVL/9AW6vOYzfRyLg== - } - engines: { node: '>=10' } - dependencies: - chalk: 4.1.2 - is-unicode-supported: 0.1.0 - dev: true - - /make-error/1.3.6: - resolution: - { - integrity: sha512-s8UhlNe7vPKomQhC1qFelMokr/Sc3AgNbso3n74mVPA5LTZwkB9NlXf4XPamLxJE8h0gh73rM94xvwRT2CVInw== - } - dev: true - - /mimic-fn/2.1.0: - resolution: - { - integrity: sha512-OqbOk5oEQeAZ8WXWydlu9HJjz9WVdEIvamMCcXmuqUYjTknH/sqsWvhQ3vgwKFRR1HpjvNBKQ37nbJgYzGqGcg== - } - engines: { node: '>=6' } - dev: true - - /ms/2.1.3: - resolution: - { - integrity: sha512-6FlzubTLZG3J2a/NVCAleEhjzq5oxgHyaCU9yYXvcLsvoVaHJq/s5xXI6/XXP6tz7R9xAOtHnSO/tXtF3WRTlA== - } - dev: true - - /mute-stream/0.0.8: - resolution: - { - integrity: sha512-nnbWWOkoWyUsTjKrhgD0dcz22mdkSnpYqbEjIm2nhwhuxlSkpywJmBo8h0ZqJdkp73mb90SssHkN4rsRaBAfAA== - } - dev: true - - /nth-check/2.0.1: - resolution: - { - integrity: sha512-it1vE95zF6dTT9lBsYbxvqh0Soy4SPowchj0UBGj/V6cTPnXXtQOPUbhZ6CmGzAD/rW22LQK6E96pcdJXk4A4w== - } - dependencies: - boolbase: 1.0.0 - dev: true - - /onetime/5.1.2: - resolution: - { - integrity: sha512-kbpaSSGJTWdAY5KPVeMOKXSrPtr8C8C7wodJbcsd51jRnmD+GZu8Y0VoU6Dm5Z4vWr0Ig/1NKuWRKf7j5aaYSg== - } - engines: { node: '>=6' } - dependencies: - mimic-fn: 2.1.0 - dev: true - - /ora/5.4.1: - resolution: - { - integrity: sha512-5b6Y85tPxZZ7QytO+BQzysW31HJku27cRIlkbAXaNx+BdcVi+LlRFmVXzeF6a7JCwJpyw5c4b+YSVImQIrBpuQ== - } - engines: { node: '>=10' } - dependencies: - bl: 4.1.0 - chalk: 4.1.2 - cli-cursor: 3.1.0 - cli-spinners: 2.6.1 - is-interactive: 1.0.0 - is-unicode-supported: 0.1.0 - log-symbols: 4.1.0 - strip-ansi: 6.0.1 - wcwidth: 1.0.1 - dev: true - - /os-tmpdir/1.0.2: - resolution: { integrity: sha1-u+Z0BseaqFxc/sdm/lc0VV36EnQ= } - engines: { node: '>=0.10.0' } - dev: true - - /parse5-htmlparser2-tree-adapter/6.0.1: - resolution: - { - integrity: sha512-qPuWvbLgvDGilKc5BoicRovlT4MtYT6JfJyBOMDsKoiT+GiuP5qyrPCnR9HcPECIJJmZh5jRndyNThnhhb/vlA== - } - dependencies: - parse5: 6.0.1 - dev: true - - /parse5/6.0.1: - resolution: - { - integrity: sha512-Ofn/CTFzRGTTxwpNEs9PP93gXShHcTq255nzRYSKe8AkVpZY7e1fpmTfOyoIvjP5HG7Z2ZM7VS9PPhQGW2pOpw== - } - dev: true - - /pretty-hrtime/1.0.3: - resolution: { integrity: sha1-t+PqQkNaTJsnWdmeDyAesZWALuE= } - engines: { node: '>= 0.8' } - dev: true - - /readable-stream/3.6.0: - resolution: - { - integrity: sha512-BViHy7LKeTz4oNnkcLJ+lVSL6vpiFeX6/d3oSH8zCW7UxP2onchk+vTGB143xuFjHS3deTgkKoXXymXqymiIdA== - } - engines: { node: '>= 6' } - dependencies: - inherits: 2.0.4 - string_decoder: 1.3.0 - util-deprecate: 1.0.2 - dev: true - - /regenerator-runtime/0.13.9: - resolution: - { - integrity: sha512-p3VT+cOEgxFsRRA9X4lkI1E+k2/CtnKtU4gcxyaCUreilL/vqI6CdZ3wxVUx3UOUg+gnUOQQcRI7BmSI656MYA== - } - dev: true - - /restore-cursor/3.1.0: - resolution: - { - integrity: sha512-l+sSefzHpj5qimhFSE5a8nufZYAM3sBSVMAPtYkmC+4EH2anSGaEMXSD0izRQbu9nfyQ9y5JrVmp7E8oZrUjvA== - } - engines: { node: '>=8' } - dependencies: - onetime: 5.1.2 - signal-exit: 3.0.7 - dev: true - - /run-async/2.4.1: - resolution: - { - integrity: sha512-tvVnVv01b8c1RrA6Ep7JkStj85Guv/YrMcwqYQnwjsAS2cTmmPGBBjAjpCW7RrSodNSoE2/qg9O4bceNvUuDgQ== - } - engines: { node: '>=0.12.0' } - dev: true - - /rxjs/7.5.4: - resolution: - { - integrity: sha512-h5M3Hk78r6wAheJF0a5YahB1yRQKCsZ4MsGdZ5O9ETbVtjPcScGfrMmoOq7EBsCRzd4BDkvDJ7ogP8Sz5tTFiQ== - } - dependencies: - tslib: 2.3.1 - dev: true - - /safe-buffer/5.2.1: - resolution: - { - integrity: sha512-rp3So07KcdmmKbGvgaNxQSJr7bGVSVk5S9Eq1F+ppbRo70+YeaDxkw5Dd8NPN+GD6bjnYm2VuPuCXmpuYvmCXQ== - } - dev: true - - /safer-buffer/2.1.2: - resolution: - { - integrity: sha512-YZo3K82SD7Riyi0E1EQPojLz7kpepnSQI9IyPbHHg1XXXevb5dJI7tpyN2ADxGcQbHG7vcyRHk0cbwqcQriUtg== - } - dev: true - - /signal-exit/3.0.7: - resolution: - { - integrity: sha512-wnD2ZE+l+SPC/uoS0vXeE9L1+0wuaMqKlfz9AMUo38JsyLSBWSFcHR1Rri62LZc12vLr1gb3jl7iwQhgwpAbGQ== - } - dev: true - - /string-width/4.2.3: - resolution: - { - integrity: sha512-wKyQRQpjJ0sIp62ErSZdGsjMJWsap5oRNihHhu6G7JVO/9jIB6UyevL+tXuOqrng8j/cxKTWyWUwvSTriiZz/g== - } - engines: { node: '>=8' } - dependencies: - emoji-regex: 8.0.0 - is-fullwidth-code-point: 3.0.0 - strip-ansi: 6.0.1 - dev: true - - /string_decoder/1.3.0: - resolution: - { - integrity: sha512-hkRX8U1WjJFd8LsDJ2yQ/wWWxaopEsABU1XfkM8A+j0+85JAGppt16cr1Whg6KIbb4okU6Mql6BOj+uup/wKeA== - } - dependencies: - safe-buffer: 5.2.1 - dev: true - - /strip-ansi/6.0.1: - resolution: - { - integrity: sha512-Y38VPSHcqkFrCpFnQ9vuSXmquuv5oXOKpGeT6aGrr3o3Gc9AlVa6JBfUSOCnbxGGZF+/0ooI7KrPuUSztUdU5A== - } - engines: { node: '>=8' } - dependencies: - ansi-regex: 5.0.1 - dev: true - - /supports-color/7.2.0: - resolution: - { - integrity: sha512-qpCAvRl9stuOHveKsn7HncJRvv501qIacKzQlO/+Lwxc9+0q2wLyv4Dfvt80/DPn2pqOBsJdDiogXGR9+OvwRw== - } - engines: { node: '>=8' } - dependencies: - has-flag: 4.0.0 - dev: true - - /through/2.3.8: - resolution: { integrity: sha1-DdTJ/6q8NXlgsbckEV1+Doai4fU= } - dev: true - - /tmp/0.0.33: - resolution: - { - integrity: sha512-jRCJlojKnZ3addtTOjdIqoRuPEKBvNXcGYqzO6zWZX8KfKEpnGY5jfggJQ3EjKuu8D4bJRr0y+cYJFmYbImXGw== - } - engines: { node: '>=0.6.0' } - dependencies: - os-tmpdir: 1.0.2 - dev: true - - /ts-node/10.4.0_mjrvdycjxafrikwlftsiu72wky: - resolution: - { - integrity: sha512-g0FlPvvCXSIO1JDF6S232P5jPYqBkRL9qly81ZgAOSU7rwI0stphCgd2kLiCrU9DjQCrJMWEqcNSjQL02s6d8A== - } - hasBin: true - peerDependencies: - '@swc/core': '>=1.2.50' - '@swc/wasm': '>=1.2.50' - '@types/node': '*' - typescript: '>=2.7' - peerDependenciesMeta: - '@swc/core': - optional: true - '@swc/wasm': - optional: true - dependencies: - '@cspotcode/source-map-support': 0.7.0 - '@swc/core': 1.2.125 - '@tsconfig/node10': 1.0.8 - '@tsconfig/node12': 1.0.9 - '@tsconfig/node14': 1.0.1 - '@tsconfig/node16': 1.0.2 - '@types/node': 16.11.6 - acorn: 8.7.0 - acorn-walk: 8.2.0 - arg: 4.1.3 - create-require: 1.1.1 - diff: 4.0.2 - make-error: 1.3.6 - typescript: 4.4.4 - yn: 3.1.1 - dev: true - - /tslib/2.3.1: - resolution: - { - integrity: sha512-77EbyPPpMz+FRFRuAFlWMtmgUWGe9UOG2Z25NqCwiIjRhOf5iKGuzSe5P2w1laq+FkRy4p+PCuVkJSGkzTEKVw== - } - dev: true - - /type-fest/0.21.3: - resolution: - { - integrity: sha512-t0rzBq87m3fVcduHDUFhKmyyX+9eo6WQjZvf51Ea/M0Q7+T374Jp1aUiyUl0GKxp8M/OETVHSDvmkyPgvX+X2w== - } - engines: { node: '>=10' } - dev: true - - /typescript/4.4.4: - resolution: - { - integrity: sha512-DqGhF5IKoBl8WNf8C1gu8q0xZSInh9j1kJJMqT3a94w1JzVaBU4EXOSMrz9yDqMT0xt3selp83fuFMQ0uzv6qA== - } - engines: { node: '>=4.2.0' } - hasBin: true - dev: true - - /util-deprecate/1.0.2: - resolution: { integrity: sha1-RQ1Nyfpw3nMnYvvS1KKJgUGaDM8= } - dev: true - - /wcwidth/1.0.1: - resolution: { integrity: sha1-8LDc+RW8X/FSivrbLA4XtTLaL+g= } - dependencies: - defaults: 1.0.3 - dev: true - - /yn/3.1.1: - resolution: - { - integrity: sha512-Ux4ygGWsu2c7isFWe8Yu1YluJmqVhxqK2cLXNQA5AcC3QfbGNpM7fu0Y8b/z16pXLnFxZYvWhd3fhBY9DLmC6Q== - } - engines: { node: '>=6' } - dev: true diff --git a/challenges/euler/readme.md b/challenges/euler/readme.md deleted file mode 100644 index 853ca90..0000000 --- a/challenges/euler/readme.md +++ /dev/null @@ -1,114 +0,0 @@ -
- -

euler

-
- -> My solutions to many of Project Euler's problems. - -The source code can be found in the [src](src) directory. My thoughts about some puzzles may also be found in the [thoughts](thoughts) directory, showing my thought process or providing some mathematical insight. As per the rules of the challenge, I may only publish the solutions to the first 100 problems here, so I will stop after that but still continue the challenge. - -### Checklist - -- [x] [1 - Multiples of 3 or 5](src/1%20-%20Multiples%20of%203%20or%205.ts) -- [x] [2 - Even Fibonacci numbers](src/2%20-%20Even%20Fibonacci%20numbers.ts) -- [x] [3 - Largest prime factor](src/3%20-%20Largest%20prime%20factor.ts) -- [x] [4 - Largest palindrome product](src/4%20-%20Largest%20palindrome%20product.ts) -- [x] [5 - Smallest multiple](src/5%20-%20Smallest%20multiple.ts) -- [x] [6 - Sum square difference](src/6%20-%20Sum%20square%20difference.ts) -- [x] [7 - 10001st prime](src/7%20-%2010001st%20prime.ts) -- [x] [8 - Largest product in a series](src/8%20-%20Largest%20product%20in%20a%20series.ts) -- [x] [9 - Special Pythagorean triplet](src/9%20-%20Special%20Pythagorean%20triplet.ts) - - [Thoughts](thoughts/9%20-%20Special%20Pythagorean%20triplet.md) -- [x] [10 - Summation of primes](src/10%20-%20Summation%20of%20primes.ts) - - [Thoughts](thoughts/10%20-%20Summation%20of%20primes.md) -- [x] [11 - Largest product in a grid](src/11%20-%20Largest%20product%20in%20a%20grid.ts) -- [x] [12 - Highly divisible triangular number](src/12%20-%20Highly%20divisible%20triangular%20number.ts) -- [x] [13 - Large sum](src/13%20-%20Large%20sum.ts) -- [x] [14 - Longest Collatz sequence](src/14%20-%20Longest%20Collatz%20sequence.ts) -- [x] [15 - Lattice paths](src/15%20-%20Lattice%20paths.ts) - - [Thoughts](thoughts/15%20-%20Lattice%20paths.md) -- [x] [16 - Power digit sum](src/16%20-%20Power%20digit%20sum.ts) -- [x] [17 - Number letter counts](src/17%20-%20Number%20letter%20counts.ts) -- [x] [18 - Maximum path sum I](src/18%20-%20Maximum%20path%20sum%20I.ts) -- [x] [19 - Counting Sundays](src/19%20-%20Counting%20Sundays.ts) -- [x] [20 - Factorial digit sum](src/20%20-%20Factorial%20digit%20sum.ts) -- [x] [21 - Amicable numbers](src/21%20-%20Amicable%20numbers.ts) -- [x] [22 - Names scores](src/22%20-%20Names%20scores.ts) -- [x] [23 - Non-abundant sums](src/23%20-%20Non-abundant%20sums.ts) -- [x] [24 - Lexicographic permutations](src/24%20-%20Lexicographic%20permutations.ts) -- [x] [25 - 1000-digit Fibonacci number](src/25%20-%201000-digit%20Fibonacci%20number.ts) -- [x] [26 - Reciprocal cycles](src/26%20-%20Reciprocal%20cycles.ts) -- [ ] 27 - Quadratic primes -- [x] [28 - Number spiral diagonals](src/28%20-%20Number%20spiral%20diagonals.ts) -- [ ] 29 - Distinct powers -- [x] [30 - Digit fifth powers](src/30%20-%20Digit%20fifth%20powers.ts) -- [ ] 31 - Coin sums -- [ ] 32 - Pandigital products -- [ ] 33 - Digit cancelling fractions -- [ ] 34 - Digit factorials -- [ ] 35 - Circular primes -- [ ] 36 - Double-base palindromes -- [ ] 37 - Truncatable primes -- [ ] 38 - Pandigital multiples -- [ ] 39 - Integer right triangles -- [ ] 40 - Champernowne's constant -- [ ] 41 - Pandigital prime -- [x] [42 - Coded triangle numbers](src/42%20-%20Coded%20triangle%20numbers.ts) -- [ ] 43 - Sub-string divisibility -- [ ] 44 - Pentagon numbers -- [ ] 45 - Triangular, pentagonal, and hexagonal -- [ ] 46 - Goldbach's other conjecture -- [ ] 47 - Distinct primes factors -- [x] [48 - Self powers](src/48%20-%20Self%20powers.ts) -- [ ] 49 - Prime permutations -- [ ] 50 - Consecutive prime sum -- [ ] 51 - Prime digit replacements -- [ ] 52 - Permuted multiples -- [ ] 53 - Combinatoric selections -- [ ] 54 - Poker hands -- [ ] 55 - Lychrel numbers -- [ ] 56 - Powerful digit sum -- [ ] 57 - Square root convergents -- [ ] 58 - Spiral primes -- [ ] 59 - XOR decryption -- [ ] 60 - Prime pair sets -- [ ] 61 - Cyclical figurate numbers -- [ ] 62 - Cubic permutations -- [ ] 63 - Powerful digit counts -- [ ] 64 - Odd period square roots -- [ ] 65 - Convergents of e -- [ ] 66 - Diophantine equation -- [x] [67 - Maximum path sum II](src/67%20-%20Maximum%20path%20sum%20II.ts) -- [ ] 68 - Magic 5-gon ring -- [ ] 69 - Totient maximum -- [ ] 70 - Totient permutation -- [ ] 71 - Ordered fractions -- [ ] 72 - Counting fractions -- [ ] 73 - Counting fractions in a range -- [ ] 74 - Digit factorial chains -- [ ] 75 - Singular integer right triangles -- [ ] 76 - Counting summations -- [ ] 77 - Prime summations -- [ ] 78 - Coin partitions -- [ ] 79 - Passcode derivation -- [ ] 80 - Square root digital expansion -- [ ] 81 - Path sum: two ways -- [ ] 82 - Path sum: three ways -- [ ] 83 - Path sum: four ways -- [ ] 84 - Monopoly odds -- [ ] 85 - Counting rectangles -- [ ] 86 - Cuboid route -- [ ] 87 - Prime power triples -- [ ] 88 - Product-sum numbers -- [ ] 89 - Roman numerals -- [ ] 90 - Cube digit pairs -- [ ] 91 - Right triangles with integer coordinates -- [ ] 92 - Square digit chains -- [ ] 93 - Arithmetic expressions -- [ ] 94 - Almost equilateral triangles -- [ ] 95 - Amicable chains -- [ ] 96 - Su Doku -- [ ] 97 - Large non-Mersenne prime -- [ ] 98 - Anagramic squares -- [ ] 99 - Largest exponential -- [ ] 100 - Arranged probability diff --git a/challenges/euler/resources/p022_names.txt b/challenges/euler/resources/p022_names.txt deleted file mode 100644 index 7b8986b..0000000 --- a/challenges/euler/resources/p022_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/challenges/euler/resources/p042_words.txt b/challenges/euler/resources/p042_words.txt deleted file mode 100644 index 7177624..0000000 --- a/challenges/euler/resources/p042_words.txt +++ /dev/null @@ -1 +0,0 @@ -"A","ABILITY","ABLE","ABOUT","ABOVE","ABSENCE","ABSOLUTELY","ACADEMIC","ACCEPT","ACCESS","ACCIDENT","ACCOMPANY","ACCORDING","ACCOUNT","ACHIEVE","ACHIEVEMENT","ACID","ACQUIRE","ACROSS","ACT","ACTION","ACTIVE","ACTIVITY","ACTUAL","ACTUALLY","ADD","ADDITION","ADDITIONAL","ADDRESS","ADMINISTRATION","ADMIT","ADOPT","ADULT","ADVANCE","ADVANTAGE","ADVICE","ADVISE","AFFAIR","AFFECT","AFFORD","AFRAID","AFTER","AFTERNOON","AFTERWARDS","AGAIN","AGAINST","AGE","AGENCY","AGENT","AGO","AGREE","AGREEMENT","AHEAD","AID","AIM","AIR","AIRCRAFT","ALL","ALLOW","ALMOST","ALONE","ALONG","ALREADY","ALRIGHT","ALSO","ALTERNATIVE","ALTHOUGH","ALWAYS","AMONG","AMONGST","AMOUNT","AN","ANALYSIS","ANCIENT","AND","ANIMAL","ANNOUNCE","ANNUAL","ANOTHER","ANSWER","ANY","ANYBODY","ANYONE","ANYTHING","ANYWAY","APART","APPARENT","APPARENTLY","APPEAL","APPEAR","APPEARANCE","APPLICATION","APPLY","APPOINT","APPOINTMENT","APPROACH","APPROPRIATE","APPROVE","AREA","ARGUE","ARGUMENT","ARISE","ARM","ARMY","AROUND","ARRANGE","ARRANGEMENT","ARRIVE","ART","ARTICLE","ARTIST","AS","ASK","ASPECT","ASSEMBLY","ASSESS","ASSESSMENT","ASSET","ASSOCIATE","ASSOCIATION","ASSUME","ASSUMPTION","AT","ATMOSPHERE","ATTACH","ATTACK","ATTEMPT","ATTEND","ATTENTION","ATTITUDE","ATTRACT","ATTRACTIVE","AUDIENCE","AUTHOR","AUTHORITY","AVAILABLE","AVERAGE","AVOID","AWARD","AWARE","AWAY","AYE","BABY","BACK","BACKGROUND","BAD","BAG","BALANCE","BALL","BAND","BANK","BAR","BASE","BASIC","BASIS","BATTLE","BE","BEAR","BEAT","BEAUTIFUL","BECAUSE","BECOME","BED","BEDROOM","BEFORE","BEGIN","BEGINNING","BEHAVIOUR","BEHIND","BELIEF","BELIEVE","BELONG","BELOW","BENEATH","BENEFIT","BESIDE","BEST","BETTER","BETWEEN","BEYOND","BIG","BILL","BIND","BIRD","BIRTH","BIT","BLACK","BLOCK","BLOOD","BLOODY","BLOW","BLUE","BOARD","BOAT","BODY","BONE","BOOK","BORDER","BOTH","BOTTLE","BOTTOM","BOX","BOY","BRAIN","BRANCH","BREAK","BREATH","BRIDGE","BRIEF","BRIGHT","BRING","BROAD","BROTHER","BUDGET","BUILD","BUILDING","BURN","BUS","BUSINESS","BUSY","BUT","BUY","BY","CABINET","CALL","CAMPAIGN","CAN","CANDIDATE","CAPABLE","CAPACITY","CAPITAL","CAR","CARD","CARE","CAREER","CAREFUL","CAREFULLY","CARRY","CASE","CASH","CAT","CATCH","CATEGORY","CAUSE","CELL","CENTRAL","CENTRE","CENTURY","CERTAIN","CERTAINLY","CHAIN","CHAIR","CHAIRMAN","CHALLENGE","CHANCE","CHANGE","CHANNEL","CHAPTER","CHARACTER","CHARACTERISTIC","CHARGE","CHEAP","CHECK","CHEMICAL","CHIEF","CHILD","CHOICE","CHOOSE","CHURCH","CIRCLE","CIRCUMSTANCE","CITIZEN","CITY","CIVIL","CLAIM","CLASS","CLEAN","CLEAR","CLEARLY","CLIENT","CLIMB","CLOSE","CLOSELY","CLOTHES","CLUB","COAL","CODE","COFFEE","COLD","COLLEAGUE","COLLECT","COLLECTION","COLLEGE","COLOUR","COMBINATION","COMBINE","COME","COMMENT","COMMERCIAL","COMMISSION","COMMIT","COMMITMENT","COMMITTEE","COMMON","COMMUNICATION","COMMUNITY","COMPANY","COMPARE","COMPARISON","COMPETITION","COMPLETE","COMPLETELY","COMPLEX","COMPONENT","COMPUTER","CONCENTRATE","CONCENTRATION","CONCEPT","CONCERN","CONCERNED","CONCLUDE","CONCLUSION","CONDITION","CONDUCT","CONFERENCE","CONFIDENCE","CONFIRM","CONFLICT","CONGRESS","CONNECT","CONNECTION","CONSEQUENCE","CONSERVATIVE","CONSIDER","CONSIDERABLE","CONSIDERATION","CONSIST","CONSTANT","CONSTRUCTION","CONSUMER","CONTACT","CONTAIN","CONTENT","CONTEXT","CONTINUE","CONTRACT","CONTRAST","CONTRIBUTE","CONTRIBUTION","CONTROL","CONVENTION","CONVERSATION","COPY","CORNER","CORPORATE","CORRECT","COS","COST","COULD","COUNCIL","COUNT","COUNTRY","COUNTY","COUPLE","COURSE","COURT","COVER","CREATE","CREATION","CREDIT","CRIME","CRIMINAL","CRISIS","CRITERION","CRITICAL","CRITICISM","CROSS","CROWD","CRY","CULTURAL","CULTURE","CUP","CURRENT","CURRENTLY","CURRICULUM","CUSTOMER","CUT","DAMAGE","DANGER","DANGEROUS","DARK","DATA","DATE","DAUGHTER","DAY","DEAD","DEAL","DEATH","DEBATE","DEBT","DECADE","DECIDE","DECISION","DECLARE","DEEP","DEFENCE","DEFENDANT","DEFINE","DEFINITION","DEGREE","DELIVER","DEMAND","DEMOCRATIC","DEMONSTRATE","DENY","DEPARTMENT","DEPEND","DEPUTY","DERIVE","DESCRIBE","DESCRIPTION","DESIGN","DESIRE","DESK","DESPITE","DESTROY","DETAIL","DETAILED","DETERMINE","DEVELOP","DEVELOPMENT","DEVICE","DIE","DIFFERENCE","DIFFERENT","DIFFICULT","DIFFICULTY","DINNER","DIRECT","DIRECTION","DIRECTLY","DIRECTOR","DISAPPEAR","DISCIPLINE","DISCOVER","DISCUSS","DISCUSSION","DISEASE","DISPLAY","DISTANCE","DISTINCTION","DISTRIBUTION","DISTRICT","DIVIDE","DIVISION","DO","DOCTOR","DOCUMENT","DOG","DOMESTIC","DOOR","DOUBLE","DOUBT","DOWN","DRAW","DRAWING","DREAM","DRESS","DRINK","DRIVE","DRIVER","DROP","DRUG","DRY","DUE","DURING","DUTY","EACH","EAR","EARLY","EARN","EARTH","EASILY","EAST","EASY","EAT","ECONOMIC","ECONOMY","EDGE","EDITOR","EDUCATION","EDUCATIONAL","EFFECT","EFFECTIVE","EFFECTIVELY","EFFORT","EGG","EITHER","ELDERLY","ELECTION","ELEMENT","ELSE","ELSEWHERE","EMERGE","EMPHASIS","EMPLOY","EMPLOYEE","EMPLOYER","EMPLOYMENT","EMPTY","ENABLE","ENCOURAGE","END","ENEMY","ENERGY","ENGINE","ENGINEERING","ENJOY","ENOUGH","ENSURE","ENTER","ENTERPRISE","ENTIRE","ENTIRELY","ENTITLE","ENTRY","ENVIRONMENT","ENVIRONMENTAL","EQUAL","EQUALLY","EQUIPMENT","ERROR","ESCAPE","ESPECIALLY","ESSENTIAL","ESTABLISH","ESTABLISHMENT","ESTATE","ESTIMATE","EVEN","EVENING","EVENT","EVENTUALLY","EVER","EVERY","EVERYBODY","EVERYONE","EVERYTHING","EVIDENCE","EXACTLY","EXAMINATION","EXAMINE","EXAMPLE","EXCELLENT","EXCEPT","EXCHANGE","EXECUTIVE","EXERCISE","EXHIBITION","EXIST","EXISTENCE","EXISTING","EXPECT","EXPECTATION","EXPENDITURE","EXPENSE","EXPENSIVE","EXPERIENCE","EXPERIMENT","EXPERT","EXPLAIN","EXPLANATION","EXPLORE","EXPRESS","EXPRESSION","EXTEND","EXTENT","EXTERNAL","EXTRA","EXTREMELY","EYE","FACE","FACILITY","FACT","FACTOR","FACTORY","FAIL","FAILURE","FAIR","FAIRLY","FAITH","FALL","FAMILIAR","FAMILY","FAMOUS","FAR","FARM","FARMER","FASHION","FAST","FATHER","FAVOUR","FEAR","FEATURE","FEE","FEEL","FEELING","FEMALE","FEW","FIELD","FIGHT","FIGURE","FILE","FILL","FILM","FINAL","FINALLY","FINANCE","FINANCIAL","FIND","FINDING","FINE","FINGER","FINISH","FIRE","FIRM","FIRST","FISH","FIT","FIX","FLAT","FLIGHT","FLOOR","FLOW","FLOWER","FLY","FOCUS","FOLLOW","FOLLOWING","FOOD","FOOT","FOOTBALL","FOR","FORCE","FOREIGN","FOREST","FORGET","FORM","FORMAL","FORMER","FORWARD","FOUNDATION","FREE","FREEDOM","FREQUENTLY","FRESH","FRIEND","FROM","FRONT","FRUIT","FUEL","FULL","FULLY","FUNCTION","FUND","FUNNY","FURTHER","FUTURE","GAIN","GAME","GARDEN","GAS","GATE","GATHER","GENERAL","GENERALLY","GENERATE","GENERATION","GENTLEMAN","GET","GIRL","GIVE","GLASS","GO","GOAL","GOD","GOLD","GOOD","GOVERNMENT","GRANT","GREAT","GREEN","GREY","GROUND","GROUP","GROW","GROWING","GROWTH","GUEST","GUIDE","GUN","HAIR","HALF","HALL","HAND","HANDLE","HANG","HAPPEN","HAPPY","HARD","HARDLY","HATE","HAVE","HE","HEAD","HEALTH","HEAR","HEART","HEAT","HEAVY","HELL","HELP","HENCE","HER","HERE","HERSELF","HIDE","HIGH","HIGHLY","HILL","HIM","HIMSELF","HIS","HISTORICAL","HISTORY","HIT","HOLD","HOLE","HOLIDAY","HOME","HOPE","HORSE","HOSPITAL","HOT","HOTEL","HOUR","HOUSE","HOUSEHOLD","HOUSING","HOW","HOWEVER","HUGE","HUMAN","HURT","HUSBAND","I","IDEA","IDENTIFY","IF","IGNORE","ILLUSTRATE","IMAGE","IMAGINE","IMMEDIATE","IMMEDIATELY","IMPACT","IMPLICATION","IMPLY","IMPORTANCE","IMPORTANT","IMPOSE","IMPOSSIBLE","IMPRESSION","IMPROVE","IMPROVEMENT","IN","INCIDENT","INCLUDE","INCLUDING","INCOME","INCREASE","INCREASED","INCREASINGLY","INDEED","INDEPENDENT","INDEX","INDICATE","INDIVIDUAL","INDUSTRIAL","INDUSTRY","INFLUENCE","INFORM","INFORMATION","INITIAL","INITIATIVE","INJURY","INSIDE","INSIST","INSTANCE","INSTEAD","INSTITUTE","INSTITUTION","INSTRUCTION","INSTRUMENT","INSURANCE","INTEND","INTENTION","INTEREST","INTERESTED","INTERESTING","INTERNAL","INTERNATIONAL","INTERPRETATION","INTERVIEW","INTO","INTRODUCE","INTRODUCTION","INVESTIGATE","INVESTIGATION","INVESTMENT","INVITE","INVOLVE","IRON","IS","ISLAND","ISSUE","IT","ITEM","ITS","ITSELF","JOB","JOIN","JOINT","JOURNEY","JUDGE","JUMP","JUST","JUSTICE","KEEP","KEY","KID","KILL","KIND","KING","KITCHEN","KNEE","KNOW","KNOWLEDGE","LABOUR","LACK","LADY","LAND","LANGUAGE","LARGE","LARGELY","LAST","LATE","LATER","LATTER","LAUGH","LAUNCH","LAW","LAWYER","LAY","LEAD","LEADER","LEADERSHIP","LEADING","LEAF","LEAGUE","LEAN","LEARN","LEAST","LEAVE","LEFT","LEG","LEGAL","LEGISLATION","LENGTH","LESS","LET","LETTER","LEVEL","LIABILITY","LIBERAL","LIBRARY","LIE","LIFE","LIFT","LIGHT","LIKE","LIKELY","LIMIT","LIMITED","LINE","LINK","LIP","LIST","LISTEN","LITERATURE","LITTLE","LIVE","LIVING","LOAN","LOCAL","LOCATION","LONG","LOOK","LORD","LOSE","LOSS","LOT","LOVE","LOVELY","LOW","LUNCH","MACHINE","MAGAZINE","MAIN","MAINLY","MAINTAIN","MAJOR","MAJORITY","MAKE","MALE","MAN","MANAGE","MANAGEMENT","MANAGER","MANNER","MANY","MAP","MARK","MARKET","MARRIAGE","MARRIED","MARRY","MASS","MASTER","MATCH","MATERIAL","MATTER","MAY","MAYBE","ME","MEAL","MEAN","MEANING","MEANS","MEANWHILE","MEASURE","MECHANISM","MEDIA","MEDICAL","MEET","MEETING","MEMBER","MEMBERSHIP","MEMORY","MENTAL","MENTION","MERELY","MESSAGE","METAL","METHOD","MIDDLE","MIGHT","MILE","MILITARY","MILK","MIND","MINE","MINISTER","MINISTRY","MINUTE","MISS","MISTAKE","MODEL","MODERN","MODULE","MOMENT","MONEY","MONTH","MORE","MORNING","MOST","MOTHER","MOTION","MOTOR","MOUNTAIN","MOUTH","MOVE","MOVEMENT","MUCH","MURDER","MUSEUM","MUSIC","MUST","MY","MYSELF","NAME","NARROW","NATION","NATIONAL","NATURAL","NATURE","NEAR","NEARLY","NECESSARILY","NECESSARY","NECK","NEED","NEGOTIATION","NEIGHBOUR","NEITHER","NETWORK","NEVER","NEVERTHELESS","NEW","NEWS","NEWSPAPER","NEXT","NICE","NIGHT","NO","NOBODY","NOD","NOISE","NONE","NOR","NORMAL","NORMALLY","NORTH","NORTHERN","NOSE","NOT","NOTE","NOTHING","NOTICE","NOTION","NOW","NUCLEAR","NUMBER","NURSE","OBJECT","OBJECTIVE","OBSERVATION","OBSERVE","OBTAIN","OBVIOUS","OBVIOUSLY","OCCASION","OCCUR","ODD","OF","OFF","OFFENCE","OFFER","OFFICE","OFFICER","OFFICIAL","OFTEN","OIL","OKAY","OLD","ON","ONCE","ONE","ONLY","ONTO","OPEN","OPERATE","OPERATION","OPINION","OPPORTUNITY","OPPOSITION","OPTION","OR","ORDER","ORDINARY","ORGANISATION","ORGANISE","ORGANIZATION","ORIGIN","ORIGINAL","OTHER","OTHERWISE","OUGHT","OUR","OURSELVES","OUT","OUTCOME","OUTPUT","OUTSIDE","OVER","OVERALL","OWN","OWNER","PACKAGE","PAGE","PAIN","PAINT","PAINTING","PAIR","PANEL","PAPER","PARENT","PARK","PARLIAMENT","PART","PARTICULAR","PARTICULARLY","PARTLY","PARTNER","PARTY","PASS","PASSAGE","PAST","PATH","PATIENT","PATTERN","PAY","PAYMENT","PEACE","PENSION","PEOPLE","PER","PERCENT","PERFECT","PERFORM","PERFORMANCE","PERHAPS","PERIOD","PERMANENT","PERSON","PERSONAL","PERSUADE","PHASE","PHONE","PHOTOGRAPH","PHYSICAL","PICK","PICTURE","PIECE","PLACE","PLAN","PLANNING","PLANT","PLASTIC","PLATE","PLAY","PLAYER","PLEASE","PLEASURE","PLENTY","PLUS","POCKET","POINT","POLICE","POLICY","POLITICAL","POLITICS","POOL","POOR","POPULAR","POPULATION","POSITION","POSITIVE","POSSIBILITY","POSSIBLE","POSSIBLY","POST","POTENTIAL","POUND","POWER","POWERFUL","PRACTICAL","PRACTICE","PREFER","PREPARE","PRESENCE","PRESENT","PRESIDENT","PRESS","PRESSURE","PRETTY","PREVENT","PREVIOUS","PREVIOUSLY","PRICE","PRIMARY","PRIME","PRINCIPLE","PRIORITY","PRISON","PRISONER","PRIVATE","PROBABLY","PROBLEM","PROCEDURE","PROCESS","PRODUCE","PRODUCT","PRODUCTION","PROFESSIONAL","PROFIT","PROGRAM","PROGRAMME","PROGRESS","PROJECT","PROMISE","PROMOTE","PROPER","PROPERLY","PROPERTY","PROPORTION","PROPOSE","PROPOSAL","PROSPECT","PROTECT","PROTECTION","PROVE","PROVIDE","PROVIDED","PROVISION","PUB","PUBLIC","PUBLICATION","PUBLISH","PULL","PUPIL","PURPOSE","PUSH","PUT","QUALITY","QUARTER","QUESTION","QUICK","QUICKLY","QUIET","QUITE","RACE","RADIO","RAILWAY","RAIN","RAISE","RANGE","RAPIDLY","RARE","RATE","RATHER","REACH","REACTION","READ","READER","READING","READY","REAL","REALISE","REALITY","REALIZE","REALLY","REASON","REASONABLE","RECALL","RECEIVE","RECENT","RECENTLY","RECOGNISE","RECOGNITION","RECOGNIZE","RECOMMEND","RECORD","RECOVER","RED","REDUCE","REDUCTION","REFER","REFERENCE","REFLECT","REFORM","REFUSE","REGARD","REGION","REGIONAL","REGULAR","REGULATION","REJECT","RELATE","RELATION","RELATIONSHIP","RELATIVE","RELATIVELY","RELEASE","RELEVANT","RELIEF","RELIGION","RELIGIOUS","RELY","REMAIN","REMEMBER","REMIND","REMOVE","REPEAT","REPLACE","REPLY","REPORT","REPRESENT","REPRESENTATION","REPRESENTATIVE","REQUEST","REQUIRE","REQUIREMENT","RESEARCH","RESOURCE","RESPECT","RESPOND","RESPONSE","RESPONSIBILITY","RESPONSIBLE","REST","RESTAURANT","RESULT","RETAIN","RETURN","REVEAL","REVENUE","REVIEW","REVOLUTION","RICH","RIDE","RIGHT","RING","RISE","RISK","RIVER","ROAD","ROCK","ROLE","ROLL","ROOF","ROOM","ROUND","ROUTE","ROW","ROYAL","RULE","RUN","RURAL","SAFE","SAFETY","SALE","SAME","SAMPLE","SATISFY","SAVE","SAY","SCALE","SCENE","SCHEME","SCHOOL","SCIENCE","SCIENTIFIC","SCIENTIST","SCORE","SCREEN","SEA","SEARCH","SEASON","SEAT","SECOND","SECONDARY","SECRETARY","SECTION","SECTOR","SECURE","SECURITY","SEE","SEEK","SEEM","SELECT","SELECTION","SELL","SEND","SENIOR","SENSE","SENTENCE","SEPARATE","SEQUENCE","SERIES","SERIOUS","SERIOUSLY","SERVANT","SERVE","SERVICE","SESSION","SET","SETTLE","SETTLEMENT","SEVERAL","SEVERE","SEX","SEXUAL","SHAKE","SHALL","SHAPE","SHARE","SHE","SHEET","SHIP","SHOE","SHOOT","SHOP","SHORT","SHOT","SHOULD","SHOULDER","SHOUT","SHOW","SHUT","SIDE","SIGHT","SIGN","SIGNAL","SIGNIFICANCE","SIGNIFICANT","SILENCE","SIMILAR","SIMPLE","SIMPLY","SINCE","SING","SINGLE","SIR","SISTER","SIT","SITE","SITUATION","SIZE","SKILL","SKIN","SKY","SLEEP","SLIGHTLY","SLIP","SLOW","SLOWLY","SMALL","SMILE","SO","SOCIAL","SOCIETY","SOFT","SOFTWARE","SOIL","SOLDIER","SOLICITOR","SOLUTION","SOME","SOMEBODY","SOMEONE","SOMETHING","SOMETIMES","SOMEWHAT","SOMEWHERE","SON","SONG","SOON","SORRY","SORT","SOUND","SOURCE","SOUTH","SOUTHERN","SPACE","SPEAK","SPEAKER","SPECIAL","SPECIES","SPECIFIC","SPEECH","SPEED","SPEND","SPIRIT","SPORT","SPOT","SPREAD","SPRING","STAFF","STAGE","STAND","STANDARD","STAR","START","STATE","STATEMENT","STATION","STATUS","STAY","STEAL","STEP","STICK","STILL","STOCK","STONE","STOP","STORE","STORY","STRAIGHT","STRANGE","STRATEGY","STREET","STRENGTH","STRIKE","STRONG","STRONGLY","STRUCTURE","STUDENT","STUDIO","STUDY","STUFF","STYLE","SUBJECT","SUBSTANTIAL","SUCCEED","SUCCESS","SUCCESSFUL","SUCH","SUDDENLY","SUFFER","SUFFICIENT","SUGGEST","SUGGESTION","SUITABLE","SUM","SUMMER","SUN","SUPPLY","SUPPORT","SUPPOSE","SURE","SURELY","SURFACE","SURPRISE","SURROUND","SURVEY","SURVIVE","SWITCH","SYSTEM","TABLE","TAKE","TALK","TALL","TAPE","TARGET","TASK","TAX","TEA","TEACH","TEACHER","TEACHING","TEAM","TEAR","TECHNICAL","TECHNIQUE","TECHNOLOGY","TELEPHONE","TELEVISION","TELL","TEMPERATURE","TEND","TERM","TERMS","TERRIBLE","TEST","TEXT","THAN","THANK","THANKS","THAT","THE","THEATRE","THEIR","THEM","THEME","THEMSELVES","THEN","THEORY","THERE","THEREFORE","THESE","THEY","THIN","THING","THINK","THIS","THOSE","THOUGH","THOUGHT","THREAT","THREATEN","THROUGH","THROUGHOUT","THROW","THUS","TICKET","TIME","TINY","TITLE","TO","TODAY","TOGETHER","TOMORROW","TONE","TONIGHT","TOO","TOOL","TOOTH","TOP","TOTAL","TOTALLY","TOUCH","TOUR","TOWARDS","TOWN","TRACK","TRADE","TRADITION","TRADITIONAL","TRAFFIC","TRAIN","TRAINING","TRANSFER","TRANSPORT","TRAVEL","TREAT","TREATMENT","TREATY","TREE","TREND","TRIAL","TRIP","TROOP","TROUBLE","TRUE","TRUST","TRUTH","TRY","TURN","TWICE","TYPE","TYPICAL","UNABLE","UNDER","UNDERSTAND","UNDERSTANDING","UNDERTAKE","UNEMPLOYMENT","UNFORTUNATELY","UNION","UNIT","UNITED","UNIVERSITY","UNLESS","UNLIKELY","UNTIL","UP","UPON","UPPER","URBAN","US","USE","USED","USEFUL","USER","USUAL","USUALLY","VALUE","VARIATION","VARIETY","VARIOUS","VARY","VAST","VEHICLE","VERSION","VERY","VIA","VICTIM","VICTORY","VIDEO","VIEW","VILLAGE","VIOLENCE","VISION","VISIT","VISITOR","VITAL","VOICE","VOLUME","VOTE","WAGE","WAIT","WALK","WALL","WANT","WAR","WARM","WARN","WASH","WATCH","WATER","WAVE","WAY","WE","WEAK","WEAPON","WEAR","WEATHER","WEEK","WEEKEND","WEIGHT","WELCOME","WELFARE","WELL","WEST","WESTERN","WHAT","WHATEVER","WHEN","WHERE","WHEREAS","WHETHER","WHICH","WHILE","WHILST","WHITE","WHO","WHOLE","WHOM","WHOSE","WHY","WIDE","WIDELY","WIFE","WILD","WILL","WIN","WIND","WINDOW","WINE","WING","WINNER","WINTER","WISH","WITH","WITHDRAW","WITHIN","WITHOUT","WOMAN","WONDER","WONDERFUL","WOOD","WORD","WORK","WORKER","WORKING","WORKS","WORLD","WORRY","WORTH","WOULD","WRITE","WRITER","WRITING","WRONG","YARD","YEAH","YEAR","YES","YESTERDAY","YET","YOU","YOUNG","YOUR","YOURSELF","YOUTH" \ No newline at end of file diff --git a/challenges/euler/resources/p067_triangle.txt b/challenges/euler/resources/p067_triangle.txt deleted file mode 100644 index 353d008..0000000 --- a/challenges/euler/resources/p067_triangle.txt +++ /dev/null @@ -1,100 +0,0 @@ -59 -73 41 -52 40 09 -26 53 06 34 -10 51 87 86 81 -61 95 66 57 25 68 -90 81 80 38 92 67 73 -30 28 51 76 81 18 75 44 -84 14 95 87 62 81 17 78 58 -21 46 71 58 02 79 62 39 31 09 -56 34 35 53 78 31 81 18 90 93 15 -78 53 04 21 84 93 32 13 97 11 37 51 -45 03 81 79 05 18 78 86 13 30 63 99 95 -39 87 96 28 03 38 42 17 82 87 58 07 22 57 -06 17 51 17 07 93 09 07 75 97 95 78 87 08 53 -67 66 59 60 88 99 94 65 55 77 55 34 27 53 78 28 -76 40 41 04 87 16 09 42 75 69 23 97 30 60 10 79 87 -12 10 44 26 21 36 32 84 98 60 13 12 36 16 63 31 91 35 -70 39 06 05 55 27 38 48 28 22 34 35 62 62 15 14 94 89 86 -66 56 68 84 96 21 34 34 34 81 62 40 65 54 62 05 98 03 02 60 -38 89 46 37 99 54 34 53 36 14 70 26 02 90 45 13 31 61 83 73 47 -36 10 63 96 60 49 41 05 37 42 14 58 84 93 96 17 09 43 05 43 06 59 -66 57 87 57 61 28 37 51 84 73 79 15 39 95 88 87 43 39 11 86 77 74 18 -54 42 05 79 30 49 99 73 46 37 50 02 45 09 54 52 27 95 27 65 19 45 26 45 -71 39 17 78 76 29 52 90 18 99 78 19 35 62 71 19 23 65 93 85 49 33 75 09 02 -33 24 47 61 60 55 32 88 57 55 91 54 46 57 07 77 98 52 80 99 24 25 46 78 79 05 -92 09 13 55 10 67 26 78 76 82 63 49 51 31 24 68 05 57 07 54 69 21 67 43 17 63 12 -24 59 06 08 98 74 66 26 61 60 13 03 09 09 24 30 71 08 88 70 72 70 29 90 11 82 41 34 -66 82 67 04 36 60 92 77 91 85 62 49 59 61 30 90 29 94 26 41 89 04 53 22 83 41 09 74 90 -48 28 26 37 28 52 77 26 51 32 18 98 79 36 62 13 17 08 19 54 89 29 73 68 42 14 08 16 70 37 -37 60 69 70 72 71 09 59 13 60 38 13 57 36 09 30 43 89 30 39 15 02 44 73 05 73 26 63 56 86 12 -55 55 85 50 62 99 84 77 28 85 03 21 27 22 19 26 82 69 54 04 13 07 85 14 01 15 70 59 89 95 10 19 -04 09 31 92 91 38 92 86 98 75 21 05 64 42 62 84 36 20 73 42 21 23 22 51 51 79 25 45 85 53 03 43 22 -75 63 02 49 14 12 89 14 60 78 92 16 44 82 38 30 72 11 46 52 90 27 08 65 78 03 85 41 57 79 39 52 33 48 -78 27 56 56 39 13 19 43 86 72 58 95 39 07 04 34 21 98 39 15 39 84 89 69 84 46 37 57 59 35 59 50 26 15 93 -42 89 36 27 78 91 24 11 17 41 05 94 07 69 51 96 03 96 47 90 90 45 91 20 50 56 10 32 36 49 04 53 85 92 25 65 -52 09 61 30 61 97 66 21 96 92 98 90 06 34 96 60 32 69 68 33 75 84 18 31 71 50 84 63 03 03 19 11 28 42 75 45 45 -61 31 61 68 96 34 49 39 05 71 76 59 62 67 06 47 96 99 34 21 32 47 52 07 71 60 42 72 94 56 82 83 84 40 94 87 82 46 -01 20 60 14 17 38 26 78 66 81 45 95 18 51 98 81 48 16 53 88 37 52 69 95 72 93 22 34 98 20 54 27 73 61 56 63 60 34 63 -93 42 94 83 47 61 27 51 79 79 45 01 44 73 31 70 83 42 88 25 53 51 30 15 65 94 80 44 61 84 12 77 02 62 02 65 94 42 14 94 -32 73 09 67 68 29 74 98 10 19 85 48 38 31 85 67 53 93 93 77 47 67 39 72 94 53 18 43 77 40 78 32 29 59 24 06 02 83 50 60 66 -32 01 44 30 16 51 15 81 98 15 10 62 86 79 50 62 45 60 70 38 31 85 65 61 64 06 69 84 14 22 56 43 09 48 66 69 83 91 60 40 36 61 -92 48 22 99 15 95 64 43 01 16 94 02 99 19 17 69 11 58 97 56 89 31 77 45 67 96 12 73 08 20 36 47 81 44 50 64 68 85 40 81 85 52 09 -91 35 92 45 32 84 62 15 19 64 21 66 06 01 52 80 62 59 12 25 88 28 91 50 40 16 22 99 92 79 87 51 21 77 74 77 07 42 38 42 74 83 02 05 -46 19 77 66 24 18 05 32 02 84 31 99 92 58 96 72 91 36 62 99 55 29 53 42 12 37 26 58 89 50 66 19 82 75 12 48 24 87 91 85 02 07 03 76 86 -99 98 84 93 07 17 33 61 92 20 66 60 24 66 40 30 67 05 37 29 24 96 03 27 70 62 13 04 45 47 59 88 43 20 66 15 46 92 30 04 71 66 78 70 53 99 -67 60 38 06 88 04 17 72 10 99 71 07 42 25 54 05 26 64 91 50 45 71 06 30 67 48 69 82 08 56 80 67 18 46 66 63 01 20 08 80 47 07 91 16 03 79 87 -18 54 78 49 80 48 77 40 68 23 60 88 58 80 33 57 11 69 55 53 64 02 94 49 60 92 16 35 81 21 82 96 25 24 96 18 02 05 49 03 50 77 06 32 84 27 18 38 -68 01 50 04 03 21 42 94 53 24 89 05 92 26 52 36 68 11 85 01 04 42 02 45 15 06 50 04 53 73 25 74 81 88 98 21 67 84 79 97 99 20 95 04 40 46 02 58 87 -94 10 02 78 88 52 21 03 88 60 06 53 49 71 20 91 12 65 07 49 21 22 11 41 58 99 36 16 09 48 17 24 52 36 23 15 72 16 84 56 02 99 43 76 81 71 29 39 49 17 -64 39 59 84 86 16 17 66 03 09 43 06 64 18 63 29 68 06 23 07 87 14 26 35 17 12 98 41 53 64 78 18 98 27 28 84 80 67 75 62 10 11 76 90 54 10 05 54 41 39 66 -43 83 18 37 32 31 52 29 95 47 08 76 35 11 04 53 35 43 34 10 52 57 12 36 20 39 40 55 78 44 07 31 38 26 08 15 56 88 86 01 52 62 10 24 32 05 60 65 53 28 57 99 -03 50 03 52 07 73 49 92 66 80 01 46 08 67 25 36 73 93 07 42 25 53 13 96 76 83 87 90 54 89 78 22 78 91 73 51 69 09 79 94 83 53 09 40 69 62 10 79 49 47 03 81 30 -71 54 73 33 51 76 59 54 79 37 56 45 84 17 62 21 98 69 41 95 65 24 39 37 62 03 24 48 54 64 46 82 71 78 33 67 09 16 96 68 52 74 79 68 32 21 13 78 96 60 09 69 20 36 -73 26 21 44 46 38 17 83 65 98 07 23 52 46 61 97 33 13 60 31 70 15 36 77 31 58 56 93 75 68 21 36 69 53 90 75 25 82 39 50 65 94 29 30 11 33 11 13 96 02 56 47 07 49 02 -76 46 73 30 10 20 60 70 14 56 34 26 37 39 48 24 55 76 84 91 39 86 95 61 50 14 53 93 64 67 37 31 10 84 42 70 48 20 10 72 60 61 84 79 69 65 99 73 89 25 85 48 92 56 97 16 -03 14 80 27 22 30 44 27 67 75 79 32 51 54 81 29 65 14 19 04 13 82 04 91 43 40 12 52 29 99 07 76 60 25 01 07 61 71 37 92 40 47 99 66 57 01 43 44 22 40 53 53 09 69 26 81 07 -49 80 56 90 93 87 47 13 75 28 87 23 72 79 32 18 27 20 28 10 37 59 21 18 70 04 79 96 03 31 45 71 81 06 14 18 17 05 31 50 92 79 23 47 09 39 47 91 43 54 69 47 42 95 62 46 32 85 -37 18 62 85 87 28 64 05 77 51 47 26 30 65 05 70 65 75 59 80 42 52 25 20 44 10 92 17 71 95 52 14 77 13 24 55 11 65 26 91 01 30 63 15 49 48 41 17 67 47 03 68 20 90 98 32 04 40 68 -90 51 58 60 06 55 23 68 05 19 76 94 82 36 96 43 38 90 87 28 33 83 05 17 70 83 96 93 06 04 78 47 80 06 23 84 75 23 87 72 99 14 50 98 92 38 90 64 61 58 76 94 36 66 87 80 51 35 61 38 -57 95 64 06 53 36 82 51 40 33 47 14 07 98 78 65 39 58 53 06 50 53 04 69 40 68 36 69 75 78 75 60 03 32 39 24 74 47 26 90 13 40 44 71 90 76 51 24 36 50 25 45 70 80 61 80 61 43 90 64 11 -18 29 86 56 68 42 79 10 42 44 30 12 96 18 23 18 52 59 02 99 67 46 60 86 43 38 55 17 44 93 42 21 55 14 47 34 55 16 49 24 23 29 96 51 55 10 46 53 27 92 27 46 63 57 30 65 43 27 21 20 24 83 -81 72 93 19 69 52 48 01 13 83 92 69 20 48 69 59 20 62 05 42 28 89 90 99 32 72 84 17 08 87 36 03 60 31 36 36 81 26 97 36 48 54 56 56 27 16 91 08 23 11 87 99 33 47 02 14 44 73 70 99 43 35 33 -90 56 61 86 56 12 70 59 63 32 01 15 81 47 71 76 95 32 65 80 54 70 34 51 40 45 33 04 64 55 78 68 88 47 31 47 68 87 03 84 23 44 89 72 35 08 31 76 63 26 90 85 96 67 65 91 19 14 17 86 04 71 32 95 -37 13 04 22 64 37 37 28 56 62 86 33 07 37 10 44 52 82 52 06 19 52 57 75 90 26 91 24 06 21 14 67 76 30 46 14 35 89 89 41 03 64 56 97 87 63 22 34 03 79 17 45 11 53 25 56 96 61 23 18 63 31 37 37 47 -77 23 26 70 72 76 77 04 28 64 71 69 14 85 96 54 95 48 06 62 99 83 86 77 97 75 71 66 30 19 57 90 33 01 60 61 14 12 90 99 32 77 56 41 18 14 87 49 10 14 90 64 18 50 21 74 14 16 88 05 45 73 82 47 74 44 -22 97 41 13 34 31 54 61 56 94 03 24 59 27 98 77 04 09 37 40 12 26 87 09 71 70 07 18 64 57 80 21 12 71 83 94 60 39 73 79 73 19 97 32 64 29 41 07 48 84 85 67 12 74 95 20 24 52 41 67 56 61 29 93 35 72 69 -72 23 63 66 01 11 07 30 52 56 95 16 65 26 83 90 50 74 60 18 16 48 43 77 37 11 99 98 30 94 91 26 62 73 45 12 87 73 47 27 01 88 66 99 21 41 95 80 02 53 23 32 61 48 32 43 43 83 14 66 95 91 19 81 80 67 25 88 -08 62 32 18 92 14 83 71 37 96 11 83 39 99 05 16 23 27 10 67 02 25 44 11 55 31 46 64 41 56 44 74 26 81 51 31 45 85 87 09 81 95 22 28 76 69 46 48 64 87 67 76 27 89 31 11 74 16 62 03 60 94 42 47 09 34 94 93 72 -56 18 90 18 42 17 42 32 14 86 06 53 33 95 99 35 29 15 44 20 49 59 25 54 34 59 84 21 23 54 35 90 78 16 93 13 37 88 54 19 86 67 68 55 66 84 65 42 98 37 87 56 33 28 58 38 28 38 66 27 52 21 81 15 08 22 97 32 85 27 -91 53 40 28 13 34 91 25 01 63 50 37 22 49 71 58 32 28 30 18 68 94 23 83 63 62 94 76 80 41 90 22 82 52 29 12 18 56 10 08 35 14 37 57 23 65 67 40 72 39 93 39 70 89 40 34 07 46 94 22 20 05 53 64 56 30 05 56 61 88 27 -23 95 11 12 37 69 68 24 66 10 87 70 43 50 75 07 62 41 83 58 95 93 89 79 45 39 02 22 05 22 95 43 62 11 68 29 17 40 26 44 25 71 87 16 70 85 19 25 59 94 90 41 41 80 61 70 55 60 84 33 95 76 42 63 15 09 03 40 38 12 03 32 -09 84 56 80 61 55 85 97 16 94 82 94 98 57 84 30 84 48 93 90 71 05 95 90 73 17 30 98 40 64 65 89 07 79 09 19 56 36 42 30 23 69 73 72 07 05 27 61 24 31 43 48 71 84 21 28 26 65 65 59 65 74 77 20 10 81 61 84 95 08 52 23 70 -47 81 28 09 98 51 67 64 35 51 59 36 92 82 77 65 80 24 72 53 22 07 27 10 21 28 30 22 48 82 80 48 56 20 14 43 18 25 50 95 90 31 77 08 09 48 44 80 90 22 93 45 82 17 13 96 25 26 08 73 34 99 06 49 24 06 83 51 40 14 15 10 25 01 -54 25 10 81 30 64 24 74 75 80 36 75 82 60 22 69 72 91 45 67 03 62 79 54 89 74 44 83 64 96 66 73 44 30 74 50 37 05 09 97 70 01 60 46 37 91 39 75 75 18 58 52 72 78 51 81 86 52 08 97 01 46 43 66 98 62 81 18 70 93 73 08 32 46 34 -96 80 82 07 59 71 92 53 19 20 88 66 03 26 26 10 24 27 50 82 94 73 63 08 51 33 22 45 19 13 58 33 90 15 22 50 36 13 55 06 35 47 82 52 33 61 36 27 28 46 98 14 73 20 73 32 16 26 80 53 47 66 76 38 94 45 02 01 22 52 47 96 64 58 52 39 -88 46 23 39 74 63 81 64 20 90 33 33 76 55 58 26 10 46 42 26 74 74 12 83 32 43 09 02 73 55 86 54 85 34 28 23 29 79 91 62 47 41 82 87 99 22 48 90 20 05 96 75 95 04 43 28 81 39 81 01 28 42 78 25 39 77 90 57 58 98 17 36 73 22 63 74 51 -29 39 74 94 95 78 64 24 38 86 63 87 93 06 70 92 22 16 80 64 29 52 20 27 23 50 14 13 87 15 72 96 81 22 08 49 72 30 70 24 79 31 16 64 59 21 89 34 96 91 48 76 43 53 88 01 57 80 23 81 90 79 58 01 80 87 17 99 86 90 72 63 32 69 14 28 88 69 -37 17 71 95 56 93 71 35 43 45 04 98 92 94 84 96 11 30 31 27 31 60 92 03 48 05 98 91 86 94 35 90 90 08 48 19 33 28 68 37 59 26 65 96 50 68 22 07 09 49 34 31 77 49 43 06 75 17 81 87 61 79 52 26 27 72 29 50 07 98 86 01 17 10 46 64 24 18 56 -51 30 25 94 88 85 79 91 40 33 63 84 49 67 98 92 15 26 75 19 82 05 18 78 65 93 61 48 91 43 59 41 70 51 22 15 92 81 67 91 46 98 11 11 65 31 66 10 98 65 83 21 05 56 05 98 73 67 46 74 69 34 08 30 05 52 07 98 32 95 30 94 65 50 24 63 28 81 99 57 -19 23 61 36 09 89 71 98 65 17 30 29 89 26 79 74 94 11 44 48 97 54 81 55 39 66 69 45 28 47 13 86 15 76 74 70 84 32 36 33 79 20 78 14 41 47 89 28 81 05 99 66 81 86 38 26 06 25 13 60 54 55 23 53 27 05 89 25 23 11 13 54 59 54 56 34 16 24 53 44 06 -13 40 57 72 21 15 60 08 04 19 11 98 34 45 09 97 86 71 03 15 56 19 15 44 97 31 90 04 87 87 76 08 12 30 24 62 84 28 12 85 82 53 99 52 13 94 06 65 97 86 09 50 94 68 69 74 30 67 87 94 63 07 78 27 80 36 69 41 06 92 32 78 37 82 30 05 18 87 99 72 19 99 -44 20 55 77 69 91 27 31 28 81 80 27 02 07 97 23 95 98 12 25 75 29 47 71 07 47 78 39 41 59 27 76 13 15 66 61 68 35 69 86 16 53 67 63 99 85 41 56 08 28 33 40 94 76 90 85 31 70 24 65 84 65 99 82 19 25 54 37 21 46 33 02 52 99 51 33 26 04 87 02 08 18 96 -54 42 61 45 91 06 64 79 80 82 32 16 83 63 42 49 19 78 65 97 40 42 14 61 49 34 04 18 25 98 59 30 82 72 26 88 54 36 21 75 03 88 99 53 46 51 55 78 22 94 34 40 68 87 84 25 30 76 25 08 92 84 42 61 40 38 09 99 40 23 29 39 46 55 10 90 35 84 56 70 63 23 91 39 -52 92 03 71 89 07 09 37 68 66 58 20 44 92 51 56 13 71 79 99 26 37 02 06 16 67 36 52 58 16 79 73 56 60 59 27 44 77 94 82 20 50 98 33 09 87 94 37 40 83 64 83 58 85 17 76 53 02 83 52 22 27 39 20 48 92 45 21 09 42 24 23 12 37 52 28 50 78 79 20 86 62 73 20 59 -54 96 80 15 91 90 99 70 10 09 58 90 93 50 81 99 54 38 36 10 30 11 35 84 16 45 82 18 11 97 36 43 96 79 97 65 40 48 23 19 17 31 64 52 65 65 37 32 65 76 99 79 34 65 79 27 55 33 03 01 33 27 61 28 66 08 04 70 49 46 48 83 01 45 19 96 13 81 14 21 31 79 93 85 50 05 -92 92 48 84 59 98 31 53 23 27 15 22 79 95 24 76 05 79 16 93 97 89 38 89 42 83 02 88 94 95 82 21 01 97 48 39 31 78 09 65 50 56 97 61 01 07 65 27 21 23 14 15 80 97 44 78 49 35 33 45 81 74 34 05 31 57 09 38 94 07 69 54 69 32 65 68 46 68 78 90 24 28 49 51 45 86 35 -41 63 89 76 87 31 86 09 46 14 87 82 22 29 47 16 13 10 70 72 82 95 48 64 58 43 13 75 42 69 21 12 67 13 64 85 58 23 98 09 37 76 05 22 31 12 66 50 29 99 86 72 45 25 10 28 19 06 90 43 29 31 67 79 46 25 74 14 97 35 76 37 65 46 23 82 06 22 30 76 93 66 94 17 96 13 20 72 -63 40 78 08 52 09 90 41 70 28 36 14 46 44 85 96 24 52 58 15 87 37 05 98 99 39 13 61 76 38 44 99 83 74 90 22 53 80 56 98 30 51 63 39 44 30 91 91 04 22 27 73 17 35 53 18 35 45 54 56 27 78 48 13 69 36 44 38 71 25 30 56 15 22 73 43 32 69 59 25 93 83 45 11 34 94 44 39 92 -12 36 56 88 13 96 16 12 55 54 11 47 19 78 17 17 68 81 77 51 42 55 99 85 66 27 81 79 93 42 65 61 69 74 14 01 18 56 12 01 58 37 91 22 42 66 83 25 19 04 96 41 25 45 18 69 96 88 36 93 10 12 98 32 44 83 83 04 72 91 04 27 73 07 34 37 71 60 59 31 01 54 54 44 96 93 83 36 04 45 -30 18 22 20 42 96 65 79 17 41 55 69 94 81 29 80 91 31 85 25 47 26 43 49 02 99 34 67 99 76 16 14 15 93 08 32 99 44 61 77 67 50 43 55 87 55 53 72 17 46 62 25 50 99 73 05 93 48 17 31 70 80 59 09 44 59 45 13 74 66 58 94 87 73 16 14 85 38 74 99 64 23 79 28 71 42 20 37 82 31 23 -51 96 39 65 46 71 56 13 29 68 53 86 45 33 51 49 12 91 21 21 76 85 02 17 98 15 46 12 60 21 88 30 92 83 44 59 42 50 27 88 46 86 94 73 45 54 23 24 14 10 94 21 20 34 23 51 04 83 99 75 90 63 60 16 22 33 83 70 11 32 10 50 29 30 83 46 11 05 31 17 86 42 49 01 44 63 28 60 07 78 95 40 -44 61 89 59 04 49 51 27 69 71 46 76 44 04 09 34 56 39 15 06 94 91 75 90 65 27 56 23 74 06 23 33 36 69 14 39 05 34 35 57 33 22 76 46 56 10 61 65 98 09 16 69 04 62 65 18 99 76 49 18 72 66 73 83 82 40 76 31 89 91 27 88 17 35 41 35 32 51 32 67 52 68 74 85 80 57 07 11 62 66 47 22 67 -65 37 19 97 26 17 16 24 24 17 50 37 64 82 24 36 32 11 68 34 69 31 32 89 79 93 96 68 49 90 14 23 04 04 67 99 81 74 70 74 36 96 68 09 64 39 88 35 54 89 96 58 66 27 88 97 32 14 06 35 78 20 71 06 85 66 57 02 58 91 72 05 29 56 73 48 86 52 09 93 22 57 79 42 12 01 31 68 17 59 63 76 07 77 -73 81 14 13 17 20 11 09 01 83 08 85 91 70 84 63 62 77 37 07 47 01 59 95 39 69 39 21 99 09 87 02 97 16 92 36 74 71 90 66 33 73 73 75 52 91 11 12 26 53 05 26 26 48 61 50 90 65 01 87 42 47 74 35 22 73 24 26 56 70 52 05 48 41 31 18 83 27 21 39 80 85 26 08 44 02 71 07 63 22 05 52 19 08 20 -17 25 21 11 72 93 33 49 64 23 53 82 03 13 91 65 85 02 40 05 42 31 77 42 05 36 06 54 04 58 07 76 87 83 25 57 66 12 74 33 85 37 74 32 20 69 03 97 91 68 82 44 19 14 89 28 85 85 80 53 34 87 58 98 88 78 48 65 98 40 11 57 10 67 70 81 60 79 74 72 97 59 79 47 30 20 54 80 89 91 14 05 33 36 79 39 -60 85 59 39 60 07 57 76 77 92 06 35 15 72 23 41 45 52 95 18 64 79 86 53 56 31 69 11 91 31 84 50 44 82 22 81 41 40 30 42 30 91 48 94 74 76 64 58 74 25 96 57 14 19 03 99 28 83 15 75 99 01 89 85 79 50 03 95 32 67 44 08 07 41 62 64 29 20 14 76 26 55 48 71 69 66 19 72 44 25 14 01 48 74 12 98 07 -64 66 84 24 18 16 27 48 20 14 47 69 30 86 48 40 23 16 61 21 51 50 26 47 35 33 91 28 78 64 43 68 04 79 51 08 19 60 52 95 06 68 46 86 35 97 27 58 04 65 30 58 99 12 12 75 91 39 50 31 42 64 70 04 46 07 98 73 98 93 37 89 77 91 64 71 64 65 66 21 78 62 81 74 42 20 83 70 73 95 78 45 92 27 34 53 71 15 -30 11 85 31 34 71 13 48 05 14 44 03 19 67 23 73 19 57 06 90 94 72 57 69 81 62 59 68 88 57 55 69 49 13 07 87 97 80 89 05 71 05 05 26 38 40 16 62 45 99 18 38 98 24 21 26 62 74 69 04 85 57 77 35 58 67 91 79 79 57 86 28 66 34 72 51 76 78 36 95 63 90 08 78 47 63 45 31 22 70 52 48 79 94 15 77 61 67 68 -23 33 44 81 80 92 93 75 94 88 23 61 39 76 22 03 28 94 32 06 49 65 41 34 18 23 08 47 62 60 03 63 33 13 80 52 31 54 73 43 70 26 16 69 57 87 83 31 03 93 70 81 47 95 77 44 29 68 39 51 56 59 63 07 25 70 07 77 43 53 64 03 94 42 95 39 18 01 66 21 16 97 20 50 90 16 70 10 95 69 29 06 25 61 41 26 15 59 63 35\ \ No newline at end of file diff --git a/challenges/euler/scripts/generate.js b/challenges/euler/scripts/generate.js deleted file mode 100644 index 539ba1b..0000000 --- a/challenges/euler/scripts/generate.js +++ /dev/null @@ -1,119 +0,0 @@ -const inquirer = require('inquirer'); -const fs = require('fs'); -const path = require('path'); -const { root, src, thoughts: thoughtsDir } = require('../constants'); -const axios = require('axios'); -const cheerio = require('cheerio'); -const chalk = require('chalk'); - -process.argv.shift(); -process.argv.shift(); - -const readmeContent = fs.readFileSync(path.join(root, 'readme.md')).toString(); - -const problems = readmeContent.match(/^- \[.] (?:\[(.*)\]|(.*))/gm).map(res => { - const sanitised = res.substring(8).replace('[', '').replace(']', ''); - return sanitised.match(/[0-9]* - (.*)/)[1]; -}); - -const questions = []; - -if (isNaN(process.argv[0])) - questions.push({ - name: 'problemNumber', - message: 'Which problem would you like to solve?', - type: 'number', - validate: input => { - input = parseInt(input); - - let alreadyGenerated = false; - fs.readdirSync(src).forEach(file => { - if (file.startsWith(input)) alreadyGenerated = true; - }); - - if (alreadyGenerated) return 'Please choose a problem you have not already completed!'; - else return true; - } - }); - -inquirer - .prompt([ - ...questions, - { - name: 'thoughts', - message: 'Should I generate a thoughts document for you?', - type: 'confirm', - default: false - } - ]) - .then(({ problemNumber, thoughts }) => { - if (!problemNumber) problemNumber = parseInt(process.argv[0]); - const fileName = `${problemNumber} - ${problems[problemNumber - 1]}`; - - // Fetch the problem data off of projecteuler.net - axios - .get(`https://projecteuler.net/problem=${problemNumber}`) - .then(({ data }) => { - const $ = cheerio.load(data); - const problemContent = $('.problem_content') - .text() - .trim() - .split('\n') - .map(r => `// ${r}`) - .join('\n'); - - // Generate the source file - fs.writeFileSync( - path.join(src, `${fileName}.ts`), - `${problemContent} -export = {}; - -// Output -console.log();` - ); - - // Generate the thoughts file - if (thoughts) - fs.writeFileSync( - path.join(thoughtsDir, `${fileName}.md`), - `
- -### ${problems[problemNumber - 1]} -
` - ); - - // Check it off in the readme - const regex = new RegExp(` \\[.\\] ${problemNumber} - .*`); - const match = readmeContent.match(regex); - - let newLine = ` [x] [${match[0] - .replace('[ ]', '') - .trim()}](src/${encodeURIComponent(fileName)}.ts)`; - - if (thoughts) - newLine += `\n - [Thoughts](thoughts/${encodeURIComponent(fileName)}.md)`; - - const newContent = readmeContent.replace(regex, newLine); - - fs.writeFileSync(path.join(root, 'readme.md'), newContent); - - // If the problem's ID is greater than 100, add it to the gitignore - if (problemNumber > 100) { - const gitignorePath = path.join(root, '.gitignore'); - const gitignoreContent = fs.readFileSync(gitignorePath).toString(); - let newContent = `${gitignoreContent}\nsrc/${fileName}.ts`; - if (thoughts) newContent += `\nthoughts/${fileName}.md`; - - fs.writeFileSync(gitignorePath, newContent); - } - }) - .catch(() => - console.error( - chalk.red( - chalk.bold( - 'There was an error generating files for that challenge - please ensure that it exists on Project Euler!' - ) - ) - ) - ); - }); diff --git a/challenges/euler/scripts/run.js b/challenges/euler/scripts/run.js deleted file mode 100644 index c96df84..0000000 --- a/challenges/euler/scripts/run.js +++ /dev/null @@ -1,109 +0,0 @@ -const fs = require('fs'); -const chalk = require('chalk'); -const { spawnSync } = require('child_process'); -const executionTime = require('execution-time')(); -const ms = require('ms'); - -const generateBanner = text => { - // Calculate the length of the divider - let divider = '--'; - - for (let j = 0; j < text.length; j++) { - divider += '-'; - } - - return `${divider} -${chalk.bold(chalk.greenBright(text))} -${divider}`; -}; - -const run = file => { - console.log(generateBanner(file.split('.ts')[0])); - - // Execute the file - executionTime.start(); - - spawnSync('npx', ['ts-node', `"src/${file}"`], { - shell: true, - stdio: 'inherit' - }); - - const results = executionTime.stop(); - - // Print time results - console.log(); - console.log(chalk.bold(chalk.yellow(`Executed in ${results.words}`))); - - return results.time; -}; - -const runMany = files => { - let totalTime = 0; - - files.forEach(file => { - const time = run(file); - totalTime += time; - console.log(); - }); - - console.log( - chalk.magenta( - chalk.bold( - `This set of executions took roughly ${ms(totalTime, { long: true })} in total!` - ) - ) - ); -}; - -// Get files -const allFiles = fs - .readdirSync('src') - .filter(f => f.endsWith('.ts')) - .filter(f => f !== 'utils.ts'); - -// Extract the puzzle number -process.argv.shift(); -process.argv.shift(); - -if (process.argv[0] === 'all' || process.argv.length === 0) { - const files = allFiles.sort((a, b) => { - a = parseInt(a.split('-')[0]); - b = parseInt(b.split('-')[0]); - - return a > b ? 1 : -1; - }); - - runMany(files); -} else if (process.argv.length > 1 || process.argv[0].includes(',')) { - let puzzleNumbers = process.argv - .map(v => - v.includes(',') - ? v.split(',').map(e => (!isNaN(e) ? parseInt(e) : null)) - : !isNaN(v) - ? parseInt(v) - : null - ) - .flat() - .filter(e => e !== null); - puzzleNumbers = puzzleNumbers.filter((e, i) => puzzleNumbers.indexOf(e) === i); - - const files = allFiles.filter(f => - f.match( - `^(?:[${puzzleNumbers.map((number, i) => - i === puzzleNumbers.length - 1 ? number : `${number}|` - )}]) -` - ) - ); - - runMany(files); -} else if (!isNaN(process.argv[0])) { - // Find the associated puzzle - const [file] = allFiles.filter(f => f.startsWith(process.argv[0])); - run(file); -} else { - console.log( - chalk.bold( - chalk.red('Please ensure that you input the number of the puzzle to run - thank you.') - ) - ); -} diff --git a/challenges/euler/src/1 - Multiples of 3 or 5.ts b/challenges/euler/src/1 - Multiples of 3 or 5.ts deleted file mode 100644 index 71850c3..0000000 --- a/challenges/euler/src/1 - Multiples of 3 or 5.ts +++ /dev/null @@ -1,22 +0,0 @@ -// If we list all the natural numbers below 10 that are multiples of 3 or 5, we get 3, 5, 6 and 9. The sum of these multiples is 23. -// Find the sum of all the multiples of 3 or 5 below 1000. -export {}; - -/** - * Figure out the multiples of two numbers below a bound - */ -const multiplesOf = (numbers: number[], upperBound: number) => { - const results: Set = new Set(); - - for (let i = 1; i < upperBound; i++) { - numbers.forEach(num => (i % num == 0 ? results.add(i) : null)); - } - - return Array.from(results); -}; - -// Output -const multiples = multiplesOf([3, 5], 1000); -const sum = multiples.reduce((a, b) => a + b); - -console.log(sum); diff --git a/challenges/euler/src/10 - Sumation of primes.ts b/challenges/euler/src/10 - Sumation of primes.ts deleted file mode 100644 index c954ff8..0000000 --- a/challenges/euler/src/10 - Sumation of primes.ts +++ /dev/null @@ -1,39 +0,0 @@ -// The sum of the primes below 10 is 2 + 3 + 5 + 7 = 17. -// Find the sum of all the primes below two million. -export {}; - -/** - * Use the Sieve of Eratosthenes to find the sum of primes up until a limit. - * @see https://github.com/newtykins/the-honk/tree/main/challenges/euler/thoughts/10%20-%20Summation%20of%29primes.md - */ -const sumOfPrimes = (limit: number) => { - let array: boolean[] = []; - let upperLimit = Math.sqrt(limit); - let output: number[] = []; - - // Make an array from 2 to (n - 1) of truthy values - for (var i = 0; i < limit; i++) { - array.push(true); - } - - // Remove multiples of primes starting from 2, 3, 5,... - for (var i = 2; i <= upperLimit; i++) { - if (array[i]) { - for (var j = i * i; j < limit; j += i) { - array[j] = false; - } - } - } - - // All array[i] set to true are primes - for (var i = 2; i < limit; i++) { - if (array[i]) { - output.push(i); - } - } - - return output.reduce((a, b) => a + b); -}; - -// Output -console.log(sumOfPrimes(2000000)); diff --git a/challenges/euler/src/11 - Largest product in a grid.ts b/challenges/euler/src/11 - Largest product in a grid.ts deleted file mode 100644 index 8d935cd..0000000 --- a/challenges/euler/src/11 - Largest product in a grid.ts +++ /dev/null @@ -1,78 +0,0 @@ -// What is the greatest product of four adjacent numbers in the same direction (up, down, left, right, or diagonally) in the 20×20 grid? -export {}; - -const largestProductInGrid = (grid: number[][], adjacentDigits: number) => { - let answer = 0; - let product = 0; - - for (let i = 0; i < grid.length; i++) { - const row = grid[i]; - - for (let j = 0; j < row.length; j++) { - if (j < row.length - adjacentDigits - 1) { - // Horizontal - product = grid[i][j]; - - for (let k = 1; k < adjacentDigits; k++) { - product *= grid[i][j + k]; - } - } - if (i < grid.length - adjacentDigits - 1) { - // Vertical - product = grid[i][j]; - - for (let k = 1; k < adjacentDigits; k++) { - product *= grid[i + k][j]; - } - - // Diagonally to the right - if (j < row.length - adjacentDigits - 1) { - product = grid[i][j]; - - for (let k = 1; k < adjacentDigits; k++) { - product *= grid[i + k][j + k]; - } - } - - // Diagonally to the left - if (j > adjacentDigits - 1) { - product = grid[i][j]; - - for (let k = 1; k < adjacentDigits; k++) { - product *= grid[i + k][j - k]; - } - } - } - - answer = product > answer ? product : answer; - } - } - return answer; -}; - -// Output -const grid = [ - [8, 2, 22, 97, 38, 15, 0, 40, 0, 75, 4, 5, 7, 78, 52, 12, 50, 77, 91, 8], - [49, 49, 99, 40, 17, 81, 18, 57, 60, 87, 17, 40, 98, 43, 69, 48, 4, 56, 62, 0], - [81, 49, 31, 73, 55, 79, 14, 29, 93, 71, 40, 67, 53, 88, 30, 3, 49, 13, 36, 65], - [52, 70, 95, 23, 4, 60, 11, 42, 69, 24, 68, 56, 1, 32, 56, 71, 37, 2, 36, 91], - [22, 31, 16, 71, 51, 67, 63, 89, 41, 92, 36, 54, 22, 40, 40, 28, 66, 33, 13, 80], - [24, 47, 32, 60, 99, 3, 45, 2, 44, 75, 33, 53, 78, 36, 84, 20, 35, 17, 12, 50], - [32, 98, 81, 28, 64, 23, 67, 10, 26, 38, 40, 67, 59, 54, 70, 66, 18, 38, 64, 70], - [67, 26, 20, 68, 2, 62, 12, 20, 95, 63, 94, 39, 63, 8, 40, 91, 66, 49, 94, 21], - [24, 55, 58, 5, 66, 73, 99, 26, 97, 17, 78, 78, 96, 83, 14, 88, 34, 89, 63, 72], - [21, 36, 23, 9, 75, 0, 76, 44, 20, 45, 35, 14, 0, 61, 33, 97, 34, 31, 33, 95], - [78, 17, 53, 28, 22, 75, 31, 67, 15, 94, 3, 80, 4, 62, 16, 14, 9, 53, 56, 92], - [16, 39, 5, 42, 96, 35, 31, 47, 55, 58, 88, 24, 0, 17, 54, 24, 36, 29, 85, 57], - [86, 56, 0, 48, 35, 71, 89, 7, 5, 44, 44, 37, 44, 60, 21, 58, 51, 54, 17, 58], - [19, 80, 81, 68, 5, 94, 47, 69, 28, 73, 92, 13, 86, 52, 17, 77, 4, 89, 55, 40], - [4, 52, 8, 83, 97, 35, 99, 16, 7, 97, 57, 32, 16, 26, 26, 79, 33, 27, 98, 66], - [88, 36, 68, 87, 57, 62, 20, 72, 3, 46, 33, 67, 46, 55, 12, 32, 63, 93, 53, 69], - [4, 42, 16, 73, 38, 25, 39, 11, 24, 94, 72, 18, 8, 46, 29, 32, 40, 62, 76, 36], - [20, 69, 36, 41, 72, 30, 23, 88, 34, 62, 99, 69, 82, 67, 59, 85, 74, 4, 36, 16], - [20, 73, 35, 29, 78, 31, 90, 1, 74, 31, 49, 71, 48, 86, 81, 16, 23, 57, 5, 54], - [1, 70, 54, 71, 83, 51, 54, 69, 16, 92, 33, 48, 61, 43, 52, 1, 89, 19, 67, 48] -]; -const output = largestProductInGrid(grid, 4); - -console.log(output); diff --git a/challenges/euler/src/12 - Highly divisible triangular number.ts b/challenges/euler/src/12 - Highly divisible triangular number.ts deleted file mode 100644 index 2b76e58..0000000 --- a/challenges/euler/src/12 - Highly divisible triangular number.ts +++ /dev/null @@ -1,60 +0,0 @@ -// The sequence of triangle numbers is generated by adding the natural numbers. So the 7th triangle number would be 1 + 2 + 3 + 4 + 5 + 6 + 7 = 28. The first ten terms would be: 1, 3, 6, 10, 15, 21, 28, 36, 45, 55, ... -// Let us list the factors of the first seven triangle numbers: -// 1: 1 -// 3: 1,3 -// 6: 1,2,3,6 -// 10: 1,2,5,10 -// 15: 1,3,5,15 -// 21: 1,3,7,21 -// 28: 1,2,4,7,14,28 -// We can see that 28 is the first triangle number to have over five divisors. -// What is the value of the first triangle number to have over five hundred divisors? -export {}; - -/** - * Find the factors of a n - */ -const factorsOf = (n: number) => { - const isEven = n % 2 === 0; - const max = Math.sqrt(n); - const inc = isEven ? 1 : 2; - const factors = [1, n]; - - for (let curFactor = isEven ? 2 : 3; curFactor <= max; curFactor += inc) { - if (n % curFactor !== 0) continue; - factors.push(curFactor); - - let compliment = n / curFactor; - if (compliment !== curFactor) factors.push(compliment); - } - - return factors; -}; - -/** - * Find the nth triangle number - * @see https://www.mathsisfun.com/algebra/triangular-numbers.html - */ -const triangleNumber = (n: number) => (n * (n + 1)) / 2; - -/** - * Find the first triangle number with over n divisors - */ -const firstTriangleWithOverNDivisors = (n: number) => { - let divisorCountFound = false; - let i = 1; - - while (!divisorCountFound) { - const triangle = triangleNumber(i); - const factors = [...factorsOf(triangle)]; - i++; - - if (factors.length > n) { - divisorCountFound = true; - return triangle; - } - } -}; - -// Output -console.log(firstTriangleWithOverNDivisors(500)); diff --git a/challenges/euler/src/13 - Large sum.ts b/challenges/euler/src/13 - Large sum.ts deleted file mode 100644 index c59d8de..0000000 --- a/challenges/euler/src/13 - Large sum.ts +++ /dev/null @@ -1,116 +0,0 @@ -// Work out the first ten digits of the sum of the following one-hundred 50-digit numbers. (see numbers array for the numbers given) -export {}; - -/** - * Get the first n digits of a number - */ -const firstDigits = (number: number, n: number) => - parseInt(BigInt(number).toString().substring(0, n)); - -// Output -const numbers = [ - 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 -]; -const sum = numbers.reduce((a, b) => a + b); -const output = firstDigits(sum, 10); - -console.log(output); diff --git a/challenges/euler/src/14 - Longest Collatz sequence.ts b/challenges/euler/src/14 - Longest Collatz sequence.ts deleted file mode 100644 index e6f2ec1..0000000 --- a/challenges/euler/src/14 - Longest Collatz sequence.ts +++ /dev/null @@ -1,45 +0,0 @@ -// The following iterative sequence is defined for the set of positive integers: -// n → n/2 (n is even) -// n → 3n + 1 (n is odd) - -// Using the rule above and starting with 13, we generate the following sequence: -// 13 → 40 → 20 → 10 → 5 → 16 → 8 → 4 → 2 → 1 - -// It can be seen that this sequence (starting at 13 and finishing at 1) contains 10 terms. Although it has not been proved yet (Collatz Problem), it is thought that all starting numbers finish at 1. - -// Which starting number, under one million, produces the longest chain? -// NOTE: Once the chain starts the terms are allowed to go above one million. -export {}; - -const calculateSequence = (startNumber: number) => { - let currentNumber = startNumber; - let sequence = [startNumber]; - - while (currentNumber > 1) { - if (currentNumber % 2 === 0) currentNumber = currentNumber / 2; - else currentNumber = currentNumber * 3 + 1; - - sequence.push(currentNumber); - } - - return sequence; -}; - -const longestSequenceUnderLimit = (limit: number) => { - let longestStartingNumber = -1; - let longestStartingNumberLength = -1; - - for (let i = 1; i < limit; i++) { - const sequence = calculateSequence(i); - - if (sequence.length > longestStartingNumberLength) { - longestStartingNumber = i; - longestStartingNumberLength = sequence.length; - } - } - - return longestStartingNumberLength; -}; - -// Output -console.log(longestSequenceUnderLimit(1000000)); diff --git a/challenges/euler/src/15 - Lattice paths.ts b/challenges/euler/src/15 - Lattice paths.ts deleted file mode 100644 index ebfcb72..0000000 --- a/challenges/euler/src/15 - Lattice paths.ts +++ /dev/null @@ -1,22 +0,0 @@ -// Starting in the top left corner of a 2×2 grid, and only being able to move to the right and down, there are exactly 6 routes to the bottom right corner. -// How many such routes are there through a 20×20 grid? -export {}; - -/** - * Calculate n! - */ -const factorial = (n: number) => { - if (n < 0) return -1; - else if (n === 0) return 1; - else return n * factorial(n - 1); -}; - -/** - * Count the lattice paths using the formula shown in the thoughts document. - * @see https://github.com/newtykins/the-honk/tree/main/challenges/euler/thoughts/15%20-%20Lattice%20paths.md - */ -const countLatticePaths = (width: number, height: number) => { - return factorial(width + height) / (factorial(width) * factorial(height)); -}; - -console.log(countLatticePaths(20, 20)); diff --git a/challenges/euler/src/16 - Power digit sum.ts b/challenges/euler/src/16 - Power digit sum.ts deleted file mode 100644 index 044d26e..0000000 --- a/challenges/euler/src/16 - Power digit sum.ts +++ /dev/null @@ -1,17 +0,0 @@ -// 2^15 = 32768 and the sum of its digits is 3 + 2 + 7 + 6 + 8 = 26. -// What is the sum of the digits of the number 2^1000? -export {}; - -const powerDigitSum = (base: number, power: number) => { - const answer = BigInt(base ** power).toString(); - let sum = 0; - - for (let i = 0; i < answer.length; i++) { - const number = parseInt(answer[i]); - sum += number; - } - - return sum; -}; - -console.log(powerDigitSum(2, 1000)); diff --git a/challenges/euler/src/17 - Number letter counts.ts b/challenges/euler/src/17 - Number letter counts.ts deleted file mode 100644 index 28a48e9..0000000 --- a/challenges/euler/src/17 - Number letter counts.ts +++ /dev/null @@ -1,89 +0,0 @@ -// If the numbers 1 to 5 are written out in words: one, two, three, four, five, then there are 3 + 3 + 5 + 4 + 4 = 19 letters used in total. -// If all the numbers from 1 to 1000 (one thousand) inclusive were written out in words, how many letters would be used? - -// NOTE: Do not count spaces or hyphens. For example, 342 (three hundred and forty-two) contains 23 letters and 115 (one hundred and fifteen) contains 20 letters. The use of "and" when writing out numbers is in compliance with British usage. -export {}; - -const translations = { - 1: 'one', - 2: 'two', - 3: 'three', - 4: 'four', - 5: 'five', - 6: 'six', - 7: 'seven', - 8: 'eight', - 9: 'nine', - 10: 'ten', - 11: 'eleven', - 12: 'twelve', - 13: 'thirteen', - 14: 'fourteen', - 15: 'fifteen', - 16: 'sixteen', - 17: 'seventeen', - 18: 'eighteen', - 19: 'nineteen', - 20: 'twenty', - 30: 'thirty', - 40: 'forty', - 50: 'fifty', - 60: 'sixty', - 70: 'seventy', - 80: 'eighty', - 90: 'ninety' -}; - -/** - * Converts numbers to words, could be improved. - */ -const numberToWords = (n: number): string => { - let out = ''; - - // Deal with thousands - const thousands = Math.floor(n / 1000); - - if (thousands > 0) { - for (let i = 0; i < thousands; i++) n -= 1000; - out += `${translations[thousands]} thousand`; - } - - // Deal with hundreds - const hundreds = Math.floor(n / 100); - - if (hundreds > 0) { - for (let i = 0; i < hundreds; i++) n -= 100; - out += `${translations[hundreds]} hundred`; - } - - // Deal with tens - const tens = Math.floor(n / 10); - - if (tens > 0) { - if (hundreds > 0) out += ' and '; - for (let i = 0; i < tens; i++) n -= 10; - - if (n % 10 > 0 && tens == 1) { - out += `${translations[10 + (n % 10)]}`; - n -= n % 10; - } else out += `${translations[tens * 10]} `; - } - - // Deal with the remainder - if (n > 0) { - if (hundreds > 0 && tens <= 0) out += ' and '; - out += translations[n]; - } - - return out; -}; - -// Output -let sum = 0; - -for (let i = 1; i <= 1000; i++) { - // Strip the words of all whitespace and add the length to the sum - sum += numberToWords(i).replace(/\s+/g, '').length; -} - -console.log(sum); diff --git a/challenges/euler/src/18 - Maximum path sum I.ts b/challenges/euler/src/18 - Maximum path sum I.ts deleted file mode 100644 index aa515ca..0000000 --- a/challenges/euler/src/18 - Maximum path sum I.ts +++ /dev/null @@ -1,43 +0,0 @@ -// By starting at the top of the triangle below and moving to adjacent numbers on the row below, the maximum total from top to bottom is 23. -// 3 -// 7 4 -// 2 4 6 -// 8 5 9 3 -// That is, 3 + 7 + 4 + 9 = 23. -// Find the maximum total from top to bottom of the triangle below (see triangle variable) -export {}; - -const maximumPathSum = (triangle: number[][]) => { - let row = triangle.length - 1; - - while (row--) { - for (let col = 0; col <= row; col++) { - triangle[row][col] = - triangle[row][col] + Math.max(triangle[row + 1][col], triangle[row + 1][col + 1]); - } - } - - return triangle[0][0]; -}; - -// Output -const triangle = [ - [75], - [95, 64], - [17, 47, 82], - [18, 35, 87, 10], - [20, 4, 82, 47, 65], - [19, 1, 23, 75, 3, 34], - [88, 2, 77, 73, 7, 63, 67], - [99, 65, 4, 28, 6, 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, 4, 68, 89, 53, 67, 30, 73, 16, 69, 87, 40, 31], - [4, 62, 98, 27, 23, 9, 70, 98, 73, 93, 38, 53, 60, 4, 23] -]; -const maximumSum = maximumPathSum(triangle); - -console.log(maximumSum); diff --git a/challenges/euler/src/19 - Counting Sundays.ts b/challenges/euler/src/19 - Counting Sundays.ts deleted file mode 100644 index cb037ba..0000000 --- a/challenges/euler/src/19 - Counting Sundays.ts +++ /dev/null @@ -1,62 +0,0 @@ -// You are given the following information, but you may prefer to do some research for yourself. -// 1 Jan 1900 was a Monday. -// Thirty days has September, -// April, June and November. -// All the rest have thirty-one, -// Saving February alone, -// Which has twenty-eight, rain or shine. -// And on leap years, twenty-nine. -// A leap year occurs on any year evenly divisible by 4, but not on a century unless it is divisible by 400. -// How many Sundays fell on the first of the month during the twentieth century (1 Jan 1901 to 31 Dec 2000)? -export = {}; - -interface Date { - year: number; - month: number; - date: number; -} - -/** - * Find all of the Sundays in a given - */ -const sundaysInAYear = (year: number): Date[] => { - const time = new Date(year, 0, 1); - - while (time.getDay() != 0) { - time.setDate(time.getDate() + 1); - } - - const dates = []; - - while (time.getFullYear() === year) { - const month = time.getMonth() + 1; - const date = time.getDate(); - - dates.push({ - year, - month, - date - }); - - time.setDate(time.getDate() + 7); - } - - return dates; -}; - -// Output -let dates: Date[] = []; - -for (let year = 1901; year <= 2000; year++) { - dates = [...dates, ...sundaysInAYear(year)]; -} - -let count = 0; - -dates.forEach(({ date }) => { - if (date == 1) { - count += 1; - } -}); - -console.log(count); diff --git a/challenges/euler/src/2 - Even Fibonacci numbers.ts b/challenges/euler/src/2 - Even Fibonacci numbers.ts deleted file mode 100644 index e74ffbc..0000000 --- a/challenges/euler/src/2 - Even Fibonacci numbers.ts +++ /dev/null @@ -1,25 +0,0 @@ -// Each new term in the Fibonacci sequence is generated by adding the previous two terms. By starting with 1 and 2, the first 10 terms will be: 1, 2, 3, 5, 8, 13, 21, 34, 55, 89, ... -// By considering the terms in the Fibonacci sequence whose values do not exceed four million, find the sum of the even-valued terms. -export {}; - -/** - * Calculate the Fibonacci sequence up until a limit - */ -const calculateFibonacci = (limit: number) => { - const sequence = [1, 2]; - - // Keep making new numbers in the sequence until we hit the upper bound - while (sequence[sequence.length - 1] < limit) { - const newValue = sequence[sequence.length - 1] + sequence[sequence.length - 2]; - sequence.push(newValue); - } - - return sequence; -}; - -// Output -const fibonacci = calculateFibonacci(4000000); -const even = fibonacci.filter(n => n % 2 === 0); -const evenSum = even.reduce((a, b) => a + b); - -console.log(evenSum); diff --git a/challenges/euler/src/20 - Factorial digit sum.ts b/challenges/euler/src/20 - Factorial digit sum.ts deleted file mode 100644 index d2fe723..0000000 --- a/challenges/euler/src/20 - Factorial digit sum.ts +++ /dev/null @@ -1,31 +0,0 @@ -// n! means n × (n − 1) × ... × 3 × 2 × 1 -// For example, 10! = 10 × 9 × ... × 3 × 2 × 1 = 3628800,and the sum of the digits in the number 10! is 3 + 6 + 2 + 8 + 8 + 0 + 0 = 27. -// Find the sum of the digits in the number 100! -export = {}; - -/** - * Calculate n! as a BigInt - */ -const factorial = (n: number) => { - if (n < 0) return BigInt(-1); - else if (n === 0) return BigInt(1); - else return BigInt(BigInt(n) * factorial(n - 1)); -}; - -/** - * Find the sum of the digits in a number - */ -const sumOfDigits = (n: number) => { - let sum = 0; - - n.toString() - .split('') - .map(d => parseInt(d)) - .forEach(digit => (sum += digit)); - - return sum; -}; - -// Output -const digitSum = sumOfDigits(factorial(100)); -console.log(digitSum); diff --git a/challenges/euler/src/21 - Amicable numbers.ts b/challenges/euler/src/21 - Amicable numbers.ts deleted file mode 100644 index b49fda6..0000000 --- a/challenges/euler/src/21 - Amicable numbers.ts +++ /dev/null @@ -1,36 +0,0 @@ -// 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. -export = {}; - -const findProperDivisors = (number: number) => { - const divisors: number[] = [1]; - - for (let i = 2; i < number; i++) { - if (number % i === 0) { - divisors.push(i); - } - } - - return divisors; -}; - -const d = (n: number) => findProperDivisors(n).reduce((a, b) => a + b); - -const findAmicableNumbers = (upperBound: number) => { - const amicableNumbers: number[] = []; - - for (let a = 0; a < upperBound; a++) { - const b = d(a); - - if (d(b) === a && a !== b) { - amicableNumbers.push(a); - } - } - - return amicableNumbers; -}; - -// Output -console.log(findAmicableNumbers(10000).reduce((a, b) => a + b)); diff --git a/challenges/euler/src/22 - Names scores.ts b/challenges/euler/src/22 - Names scores.ts deleted file mode 100644 index b2bbc1a..0000000 --- a/challenges/euler/src/22 - Names scores.ts +++ /dev/null @@ -1,40 +0,0 @@ -// Using names.txt (right click and 'Save Link/Target As...'), a 46K text file containing over five-thousand first names, begin by sorting it into alphabetical order. Then working out the alphabetical value for each name, multiply this value by its alphabetical position in the list to obtain a name score. -// For example, when the list is sorted into alphabetical order, COLIN, which is worth 3 + 15 + 12 + 9 + 14 = 53, is the 938th name in the list. So, COLIN would obtain a score of 938 × 53 = 49714. -// What is the total of all the name scores in the file? -export = {}; - -import fs from 'fs'; -import path, { parse } from 'path'; -import { resources } from '../constants'; - -const parseNames = () => - fs - .readFileSync(path.join(resources, 'p022_names.txt')) - .toString() - .split(',') - .map(name => name.replace(/"/g, '').toLowerCase()) - .sort((a, b) => a.localeCompare(b)); - -const nameScore = (name: string, position: number) => { - let letterSum = 0; - - for (let i = 0; i < name.length; i++) { - letterSum += name.charCodeAt(i) - 96; // use char codes to easily find the alphabetical location - } - - return letterSum * position; -}; - -const nameScoreTotal = (names: string[]) => { - let total = 0; - - names.forEach((name, i) => { - total += nameScore(name, i + 1); - }); - - return total; -}; - -// Output -const names = parseNames(); -console.log(nameScoreTotal(names)); diff --git a/challenges/euler/src/23 - Non-abundant sums.ts b/challenges/euler/src/23 - Non-abundant sums.ts deleted file mode 100644 index 97ad8ea..0000000 --- a/challenges/euler/src/23 - Non-abundant sums.ts +++ /dev/null @@ -1,56 +0,0 @@ -// A perfect number is a number for which the sum of its proper divisors is exactly equal to the number. For example, the sum of the proper divisors of 28 would be 1 + 2 + 4 + 7 + 14 = 28, which means that 28 is a perfect number. -// A number n is called deficient if the sum of its proper divisors is less than n and it is called abundant if this sum exceeds n. -// -// As 12 is the smallest abundant number, 1 + 2 + 3 + 4 + 6 = 16, the smallest number that can be written as the sum of two abundant numbers is 24. By mathematical analysis, it can be shown that all integers greater than 28123 can be written as the sum of two abundant numbers. However, this upper limit cannot be reduced any further by analysis even though it is known that the greatest number that cannot be expressed as the sum of two abundant numbers is less than this limit. -// Find the sum of all the positive integers which cannot be written as the sum of two abundant numbers. -export = {}; - -const findProperDivisors = (number: number) => { - const divisors: number[] = [1]; - - for (let i = 2; i < number; i++) { - if (number % i === 0) { - divisors.push(i); - } - } - - return divisors; -}; - -const isNumberAbundant = (number: number) => { - const divisors = findProperDivisors(number); - return divisors.reduce((a, b) => a + b) > number; -}; - -const abundantNumbers = (lowerBound: number, upperBound: number) => { - const numbers: number[] = []; - - for (let i = lowerBound; i < upperBound; i++) { - if (isNumberAbundant(i)) numbers.push(i); - } - - return numbers; -}; - -const upperLimit = 28123; -const numbers = abundantNumbers(1, upperLimit); -const sums = Array(upperLimit + 1).fill(0); - -for (let i = 0; i < numbers.length; i++) { - for (let j = i; j < numbers.length; j++) { - const sum = numbers[i] + numbers[j]; - - if (sum <= upperLimit) { - if (sums[sum] == 0) sums[sum] = sum; - } - } -} - -let answer = 0; - -for (let i = 1; i < sums.length; i++) { - if (sums[i] === 0) answer += i; -} - -// Output -console.log(answer); diff --git a/challenges/euler/src/24 - Lexicographic permutations.ts b/challenges/euler/src/24 - Lexicographic permutations.ts deleted file mode 100644 index bb60611..0000000 --- a/challenges/euler/src/24 - Lexicographic permutations.ts +++ /dev/null @@ -1,40 +0,0 @@ -// A permutation is an ordered arrangement of objects. For example, 3124 is one possible permutation of the digits 1, 2, 3 and 4. If all of the permutations are listed numerically or alphabetically, we call it lexicographic order. The lexicographic permutations of 0, 1 and 2 are: -// 012   021   102   120   201   210 -// What is the millionth lexicographic permutation of the digits 0, 1, 2, 3, 4, 5, 6, 7, 8 and 9? -export = {}; - -const getPermutations = (array: T[]) => { - const permutations: T[][] = []; - - if (array.length === 0) return []; - if (array.length === 1) return [array]; - - for (let i = 0; i < array.length; i++) { - const currentValue = array[i]; - const remainingValues = [...array.slice(0, i), ...array.slice(i + 1)]; - const permutedRemains = getPermutations(remainingValues); - - for (let j = 0; j < permutedRemains.length; j++) { - const permutedArray = [currentValue, ...permutedRemains[j]]; - permutations.push(permutedArray); - } - } - - return permutations; -}; - -const orderLexicographically = (permutations: number[][]) => { - return permutations.sort((a, b) => { - const parsedA = parseInt(a.map(v => v.toString()).join('')); - const parsedB = parseInt(b.map(v => v.toString()).join('')); - - return parsedA > parsedB ? 1 : -1; - }); -}; - -const nthLexographicPermutation = (numbers: number[], n: number) => { - const permutations = orderLexicographically(getPermutations(numbers)); - return parseInt(permutations[n - 1].map(v => v.toString()).join('')); -}; - -console.log(nthLexographicPermutation([0, 1, 2, 3, 4, 5, 6, 7, 8, 9], 1000000)); diff --git a/challenges/euler/src/25 - 1000-digit Fibonacci number.ts b/challenges/euler/src/25 - 1000-digit Fibonacci number.ts deleted file mode 100644 index 91dce8c..0000000 --- a/challenges/euler/src/25 - 1000-digit Fibonacci number.ts +++ /dev/null @@ -1,43 +0,0 @@ -// The Fibonacci sequence is defined by the recurrence relation: -// Fn = Fn−1 + Fn−2, where F1 = 1 and F2 = 1. -// The 12th term, F12, is the first term to contain three digits. -// What is the index of the first term in the Fibonacci sequence to contain 1000 digits? -export = {}; - -function* fibonacciSequence(): Generator { - let current = BigInt(1); - let a = BigInt(1); - let b = BigInt(1); - - yield BigInt(1); - - while (true) { - current = b; - yield current; - - b = a + b; - a = current; - } -} - -const firstTermWithXDigits = (sequence: Generator, digitCount: number) => { - let { value: term } = sequence.next(); - let index = 1; - - while (term.toString().length !== digitCount) { - term = sequence.next().value; - index += 1; - } - - return { - value: term, - index - }; -}; - -// Output - -const fibonacci = fibonacciSequence(); -const firstTerm = firstTermWithXDigits(fibonacci, 1000); - -console.log(firstTerm); diff --git a/challenges/euler/src/26 - Reciprocal cycles.ts b/challenges/euler/src/26 - Reciprocal cycles.ts deleted file mode 100644 index 4681c46..0000000 --- a/challenges/euler/src/26 - Reciprocal cycles.ts +++ /dev/null @@ -1,54 +0,0 @@ -// A unit fraction contains 1 in the numerator. The decimal representation of the unit fractions with denominators 2 to 10 are given: -// -// 1/2= 0.5 -// 1/3= 0.(3) -// 1/4= 0.25 -// 1/5= 0.2 -// 1/6= 0.1(6) -// 1/7= 0.(142857) -// 1/8= 0.125 -// 1/9= 0.(1) -// 1/10= 0.1 -// -// Where 0.1(6) means 0.166666..., and has a 1-digit recurring cycle. It can be seen that 1/7 has a 6-digit recurring cycle. -// Find the value of d < 1000 for which 1/d contains the longest recurring cycle in its decimal fraction part. -export = {}; - -const cycleLength = (denominator: number, numerator: number = 1) => { - let dividend = numerator; - let position = 1; - let lastPosition: { [number: number]: number } = {}; - - while (true) { - const remainder = dividend % denominator; - - // If the remainder is zero, there is no recurring cycle - if (remainder === 0) return 0; - - // If the remainder has been seen before, return. - if (lastPosition.hasOwnProperty(remainder)) { - return position - lastPosition[remainder]; - } - - // Move onto the next digit - lastPosition[remainder] = position; - position++; - dividend = remainder * 10; - } -}; - -let longestLength = 0; -let correspondingNumber = null; - -for (let i = 1; i < 1000; i++) { - const length = cycleLength(i); - - if (length > longestLength) { - longestLength = length; - correspondingNumber = i; - } -} - -console.log( - `The number with the longest recurring cycle is ${correspondingNumber} with a length of ${longestLength}.` -); diff --git a/challenges/euler/src/28 - Number spiral diagonals.ts b/challenges/euler/src/28 - Number spiral diagonals.ts deleted file mode 100644 index e599e0c..0000000 --- a/challenges/euler/src/28 - Number spiral diagonals.ts +++ /dev/null @@ -1,32 +0,0 @@ -// Starting with the number 1 and moving to the right in a clockwise direction a 5 by 5 spiral is formed as follows: -// 21 22 23 24 25 -// 20  7  8  9 10 -// 19  6  1  2 11 -// 18  5  4  3 12 -// 17 16 15 14 13 -// It can be verified that the sum of the numbers on the diagonals is 101. -// What is the sum of the numbers on the diagonals in a 1001 by 1001 spiral formed in the same way? -export = {}; - -const sumOfSpiralDiagonals = (size: number) => { - let sum = 1; - - // Matrix is size n - // Lowest number is n(n - 3) + 4 - // Numbers increase by n - 1 - - for (let n = 3; n <= size; n += 2) { - const corners = []; - - for (let i = n * (n - 3) + 3; corners.length < 4; i += n - 1) { - corners.push(i); - } - - sum += corners.reduce((a, b) => a + b); - } - - return sum; -}; - -// Output -console.log(sumOfSpiralDiagonals(1001)); diff --git a/challenges/euler/src/3 - Largest prime factor.ts b/challenges/euler/src/3 - Largest prime factor.ts deleted file mode 100644 index 9251169..0000000 --- a/challenges/euler/src/3 - Largest prime factor.ts +++ /dev/null @@ -1,20 +0,0 @@ -// The prime factors of 13195 are 5, 7, 13 and 29. -// What is the largest prime factor of the number 600851475143? -export {}; - -/** - * Work out the largest prime factor of a number - */ -const largestPrimeFactor = (number: number) => { - let i = 2; - - while (i * i <= number) { - if (number % i) i += 1; - else number = Math.floor(number / i); - } - - return number; -}; - -// Output -console.log(largestPrimeFactor(600851475143)); diff --git a/challenges/euler/src/30 - Digit fifth powers.ts b/challenges/euler/src/30 - Digit fifth powers.ts deleted file mode 100644 index c555a1d..0000000 --- a/challenges/euler/src/30 - Digit fifth powers.ts +++ /dev/null @@ -1,38 +0,0 @@ -// Surprisingly there are only three numbers that can be written as the sum of fourth powers of their digits: -// 1634 = 1^4 + 6^4 + 3^4 + 4^4 -// 8208 = 8^4 + 2^4 + 0^4 + 8^4 -// 9474 = 9^4 + 4^4 + 7^4 + 4^4 -// As 1 = 1^4 is not a sum it is not included. -// The sum of these numbers is 1634 + 8208 + 9474 = 19316. -// Find the sum of all the numbers that can be written as the sum of fifth powers of their digits. -export = {}; - -// something times 9^5 = x digit number -// 9^5 = 59049 therefore x >= 5 -// 6 * 9^5 = 354294 - -const powers = []; - -for (let i = 0; i < 10; i++) { - powers.push(i ** 5); -} - -const powerSum = (n: number) => { - let sum = 0; - - while (n > 0) { - sum += powers[n % 10]; - n = (n / 10) | 0; - } - - return sum; -}; - -let sum = 0; - -for (let i = 10; i < 6 * powers[9]; i++) { - if (i === powerSum(i)) sum += i; -} - -// Output -console.log(sum); diff --git a/challenges/euler/src/4 - Largest pallindrome product.ts b/challenges/euler/src/4 - Largest pallindrome product.ts deleted file mode 100644 index 6044c49..0000000 --- a/challenges/euler/src/4 - Largest pallindrome product.ts +++ /dev/null @@ -1,28 +0,0 @@ -// A palindromic number reads the same both ways. The largest palindrome made from the product of two 2-digit numbers is 9009 = 91 × 99. -// Find the largest palindrome made from the product of two 3-digit numbers. -export {}; - -/** - * Work out the largest pallindromic number between a lower and upper bound. - */ -const largestPallindromicNumber = (lowerBound: number, upperBound: number) => { - // Work out all of the products of 3 digit numbers - const products: number[] = []; - - for (let i = lowerBound; i < upperBound + 1; i++) { - for (let j = lowerBound; j < upperBound + 1; j++) { - products.push(i * j); - } - } - - // Filter for palindromic numbers - const palindromic = products.filter( - x => x.toString() === x.toString().split('').reverse().join('') - ); - - // Find the biggest palindrome number - const sorted = palindromic.sort((a, b) => b - a); - return sorted[0]; -}; - -console.log(largestPallindromicNumber(100, 999)); diff --git a/challenges/euler/src/42 - Coded triangle numbers.ts b/challenges/euler/src/42 - Coded triangle numbers.ts deleted file mode 100644 index 043c707..0000000 --- a/challenges/euler/src/42 - Coded triangle numbers.ts +++ /dev/null @@ -1,40 +0,0 @@ -// The nth term of the sequence of triangle numbers is given by, tn = ½n(n+1); so the first ten triangle numbers are: -// 1, 3, 6, 10, 15, 21, 28, 36, 45, 55, ... -// By converting each letter in a word to a number corresponding to its alphabetical position and adding these values we form a word value. For example, the word value for SKY is 19 + 11 + 25 = 55 = t10. If the word value is a triangle number then we shall call the word a triangle word. -// Using words.txt (right click and 'Save Link/Target As...'), a 16K text file containing nearly two-thousand common English words, how many are triangle words? - -import fs from 'fs'; -import path from 'path'; -import { resources, alphabet } from '../constants.js'; -export = {}; - -const words = fs - .readFileSync(path.join(resources, 'p042_words.txt')) - .toString() - .split(',') - .map(word => word.replace(/"/g, '').toLowerCase()); - -const isTriangleNumber = (t: number) => { - // One solution of the inverse triangle number formula - const solution = (Math.sqrt(8 * t + 1) - 1) / 2; - - // This number must be an integer and greater than zero for it to be a triangle number - return Number.isInteger(solution) && solution > 0; -}; - -let triangleWordCount = 0; - -for (const word of words) { - const letters = word.split(''); - let sum = 0; - - for (const letter of letters) { - const value = alphabet.indexOf(letter) + 1; - sum += value; - } - - if (isTriangleNumber(sum)) triangleWordCount++; -} - -// Output -console.log(`Out of nearly 2000 common English words, ${triangleWordCount} are triangle words!`); diff --git a/challenges/euler/src/48 - Self powers.ts b/challenges/euler/src/48 - Self powers.ts deleted file mode 100644 index e8230b5..0000000 --- a/challenges/euler/src/48 - Self powers.ts +++ /dev/null @@ -1,21 +0,0 @@ -// The series, 1^1 + 2^2 + 3^3 + ... + 10^10 = 10405071317. -// Find the last ten digits of the series, 1^1 + 2^2 + 3^3 + ... + 1000^1000. -export = {}; - -const calculateSeries = (upperLimit: number): bigint => { - let sum = BigInt(0); - - for (let i = 1; i <= upperLimit; i++) { - sum += BigInt(i) ** BigInt(i); - } - - return sum; -}; - -const lastNDigits = (number: number | bigint, n: number) => { - const string = number.toString(); - return parseInt(string.substring(string.length - n)); -}; - -// Output -console.log(lastNDigits(calculateSeries(1000), 10)); diff --git a/challenges/euler/src/5 - Smallest multiple.ts b/challenges/euler/src/5 - Smallest multiple.ts deleted file mode 100644 index 62b81fa..0000000 --- a/challenges/euler/src/5 - Smallest multiple.ts +++ /dev/null @@ -1,21 +0,0 @@ -// 2520 is the smallest number that can be divided by each of the numbers from 1 to 10 without any remainder. -// What is the smallest positive number that is evenly divisible by all of the numbers from 1 to 20? -export {}; - -const canBeDivided = (x: number, n: number) => { - for (; n > 0; n -= 1) { - if (x % n !== 0) return false; - } - - return true; -}; - -const divisibleTo = (n: number) => { - if (n === 1) return 1; - - for (var step = divisibleTo(n - 1), i = step; !canBeDivided(i, n); i += step); - return i; -}; - -// Output -console.log(divisibleTo(20)); diff --git a/challenges/euler/src/6 - Sum square difference.ts b/challenges/euler/src/6 - Sum square difference.ts deleted file mode 100644 index 996cfc4..0000000 --- a/challenges/euler/src/6 - Sum square difference.ts +++ /dev/null @@ -1,38 +0,0 @@ -// The sum of the squares of the first ten natural numbers is 1^2 + 2^2 + ... + 10^2 = 385 -// The square of the sum of the first ten natural numbers is (1 + 2 + ... + 10)^2 = 55^2 = 3025 -// Hence the difference between the sum of the squares of the first ten natural numbers and the square of the sum is 3025 - 385 = 2640. -// Find the difference between the sum of the squares of the first one hundred natural numbers and the square of the sum. -export {}; - -/** - * Calculate the sum of the squares between a lower and upper bound. - */ -const sumOfSquares = (lowerBound: number, upperBound: number) => { - // Calculate the square number of all the numbers between the bounds - const squares: number[] = []; - - for (let i = lowerBound; i < upperBound + 1; i++) { - squares.push(i ** 2); - } - - // Return the sum - return squares.reduce((a, b) => a + b); -}; - -/** - * Square the sum of the numbers between a lower and upper bound, and return it. - */ -const squareOfSum = (lowerBound: number, upperBound: number) => { - // Get the sum of all of the numbers between the bounds - const numbers: number[] = []; - - for (let i = lowerBound; i < upperBound + 1; i++) { - numbers.push(i); - } - - // Square the sum - return numbers.reduce((a, b) => a + b) ** 2; -}; - -// Output -console.log(squareOfSum(1, 100) - sumOfSquares(1, 100)); diff --git a/challenges/euler/src/67 - Maximum path sum II.ts b/challenges/euler/src/67 - Maximum path sum II.ts deleted file mode 100644 index c363f31..0000000 --- a/challenges/euler/src/67 - Maximum path sum II.ts +++ /dev/null @@ -1,39 +0,0 @@ -// By starting at the top of the triangle below and moving to adjacent numbers on the row below, the maximum total from top to bottom is 23. -// 3 -// 7 4 -// 2 4 6 -// 8 5 9 3 -// That is, 3 + 7 + 4 + 9 = 23. -// Find the maximum total from top to bottom in p067_triangle.txt, a 15K text file containing a triangle with one-hundred rows. - -import fs from 'fs'; -import path from 'path'; -import { resources } from '../constants.js'; -export {}; - -// Same method as 18 - Maximum path sum I -const maximumPathSum = (triangle: number[][]) => { - let row = triangle.length - 1; - - while (row--) { - for (let col = 0; col <= row; col++) { - triangle[row][col] = - triangle[row][col] + Math.max(triangle[row + 1][col], triangle[row + 1][col + 1]); - } - } - - return triangle[0][0]; -}; - -// Output -const data = fs - .readFileSync(path.join(resources, 'p067_triangle.txt')) // https://github.com/newtykins/the-honk/tree/main/challenges/euler/resources/p067_triangle.txt - .toString() - .split('\n') - .map(row => { - const values = row.split(' '); - return values.map(v => parseInt(v)); - }); -const maximumSum = maximumPathSum(data); - -console.log(maximumSum); diff --git a/challenges/euler/src/7 - 10001st Prime.ts b/challenges/euler/src/7 - 10001st Prime.ts deleted file mode 100644 index 3fabe8c..0000000 --- a/challenges/euler/src/7 - 10001st Prime.ts +++ /dev/null @@ -1,32 +0,0 @@ -// By listing the first six prime numbers: 2, 3, 5, 7, 11, and 13, we can see that the 6th prime is 13. -// What is the 10 001st prime number? -export {}; - -/** - * Is this number prime? - */ -const isPrime = (number: number) => { - for (var i = 2; i < number; i++) { - if (number % i === 0) return false; - } - - return true; -}; - -/** - * Calculate the nth prime number. - */ -const nthPrime = (n: number) => { - const primes: number[] = []; - let number = 2; - - while (n > primes.length) { - if (isPrime(number)) primes.push(number); - number++; - } - - return primes[n - 1]; -}; - -// Output -console.log(nthPrime(10001)); diff --git a/challenges/euler/src/8 - Largest product in a series.ts b/challenges/euler/src/8 - Largest product in a series.ts deleted file mode 100644 index e1f6448..0000000 --- a/challenges/euler/src/8 - Largest product in a series.ts +++ /dev/null @@ -1,41 +0,0 @@ -// The four adjacent digits in the 1000-digit number that have the greatest product are 9 × 9 × 8 × 9 = 5832. -// Find the thirteen adjacent digits in the 1000-digit number that have the greatest product. What is the value of this product? -export {}; - -const largestProduct = (number: bigint | number, adjacentDigits: number) => { - let cursorIndex = 0; - const selections: number[][] = []; - - while (cursorIndex < number.toString().length) { - const characters = number.toString().split(''); - - // Select the next 13 numbers - const selection: number[] = []; - - for (let i = 0; i < adjacentDigits; i++) { - selection.push(parseInt(characters[cursorIndex + i])); - } - - if (!selection.includes(NaN)) selections.push(selection); - - // Keep moving the cursor along - cursorIndex++; - } - - // Work out the products - const products: number[] = []; - - for (let i = 0; i < selections.length; i++) { - products.push(selections[i].reduce((a, b) => a * b)); - } - - // Return the largest product - return products.sort((a, b) => b - a)[0]; -}; - -// Output -const number = BigInt( - '7316717653133062491922511967442657474235534919493496983520312774506326239578318016984801869478851843858615607891129494954595017379583319528532088055111254069874715852386305071569329096329522744304355766896648950445244523161731856403098711121722383113622298934233803081353362766142828064444866452387493035890729629049156044077239071381051585930796086670172427121883998797908792274921901699720888093776657273330010533678812202354218097512545405947522435258490771167055601360483958644670632441572215539753697817977846174064955149290862569321978468622482839722413756570560574902614079729686524145351004748216637048440319989000889524345065854122758866688116427171479924442928230863465674813919123162824586178664583591245665294765456828489128831426076900422421902267105562632111110937054421750694165896040807198403850962455444362981230987879927244284909188845801561660979191338754992005240636899125607176060588611646710940507754100225698315520005593572972571636269561882670428252483600823257530420752963450' -); - -console.log(largestProduct(number, 13)); diff --git a/challenges/euler/src/9 - Special Pythagorean triplet.ts b/challenges/euler/src/9 - Special Pythagorean triplet.ts deleted file mode 100644 index 35d803b..0000000 --- a/challenges/euler/src/9 - Special Pythagorean triplet.ts +++ /dev/null @@ -1,30 +0,0 @@ -// A Pythagorean triplet is a set of three natural numbers, a < b < c, for which a^2 + b^2 = c^2 -// For example, 3^2 + 4^2 = 9 + 16 = 25 = 5^2 -// There exists exactly one Pythagorean triplet for which a + b + c = 1000. -// Find the product abc. -export {}; - -/** - * Find a Pythagorean triplet based on its sum - * @see https://github.com/newtykins/the-honk/tree/main/challenges/euler/thoughts/9%20-%20Special%20Pythagorean%29triplet.md - */ -const pythagoreanTriplet = (sum: number) => { - let a: number, - b = 1, - c: number; - - for (; b < sum; b++) { - a = -((sum * (2 * b) - sum * sum) / (2 * sum - 2 * b)); - - if (Math.floor(a) === a) { - c = sum - a - b; - break; - } - } - - return { a, b, c }; -}; - -// Output -const triplet = pythagoreanTriplet(1000); -console.log(triplet.a * triplet.b * triplet.c); diff --git a/challenges/euler/thoughts/10 - Summation of primes.md b/challenges/euler/thoughts/10 - Summation of primes.md deleted file mode 100644 index 23873ae..0000000 --- a/challenges/euler/thoughts/10 - Summation of primes.md +++ /dev/null @@ -1,23 +0,0 @@ -
- -### Sieve of Eratosthenes Psuedocode - -[Source](https://en.wikipedia.org/wiki/Sieve_of_Eratosthenes#Pseudocode) - -``` -algorithm Sieve of Eratosthenes is - input: an integer n > 1. - output: all prime numbers from 2 through n. - - let A be an array of Boolean values, indexed by integers 2 to n, - initially all set to true. - - for i = 2, 3, 4, ..., not exceeding √n do - if A[i] is true - for j = i2, i2+i, i2+2i, i2+3i, ..., not exceeding n do - A[j] := false - - return all i such that A[i] is true. -``` - -
diff --git a/challenges/euler/thoughts/15 - Lattice paths.md b/challenges/euler/thoughts/15 - Lattice paths.md deleted file mode 100644 index 05e03d0..0000000 --- a/challenges/euler/thoughts/15 - Lattice paths.md +++ /dev/null @@ -1,17 +0,0 @@ -
- -### Lattice Paths - -For a lattice with dimensions m x n, all paths will have m + n segments. m segments go down, n segments go right. To count m + n slots, count the ways to pick m downward moves - the rest will be rightward moves. - -

- - - -#### LaTeX - -``` -{m + n \choose m} = {m + n \choose n} = \frac{(m+n)!}{m!n!} -``` - -
diff --git a/challenges/euler/thoughts/9 - Special Pythagorean triplet.md b/challenges/euler/thoughts/9 - Special Pythagorean triplet.md deleted file mode 100644 index f75b90b..0000000 --- a/challenges/euler/thoughts/9 - Special Pythagorean triplet.md +++ /dev/null @@ -1,24 +0,0 @@ -
- -### Proof - -> let x be the sum - - - -### LaTeX - -``` -c = x - (a + b) \\ -a^2 + b^2 = (x - (a + b))^2 \\ -a^2 + b^2 = a^2 + 2ab - 2ax + b^2 - 2bx + x^2 \\ -2ab - 2ax - 2bx + x^2 = 0 \\ -\\ -2bx - 2ab = x^2 - 2ax \\ -(\frac{x^2}{x}) - 2a = 2b - (\frac{2ab}{x}) \\ --2a = 2b - (\frac{2ab}{x}) - (\frac{x^2}{x}) \\ -\\ -a = \frac{2bx - x^2}{2x - 2b} -``` - -
diff --git a/challenges/euler/tsconfig.json b/challenges/euler/tsconfig.json deleted file mode 100644 index 0c42201..0000000 --- a/challenges/euler/tsconfig.json +++ /dev/null @@ -1,14 +0,0 @@ -{ - "compilerOptions": { - "target": "es2020", - "module": "commonjs", - "outDir": "build", - "esModuleInterop": true, - "allowJs": true - }, - "include": ["src/**/*.ts"], - "ts-node": { - "transpileOnly": true, - "transpiler": "ts-node/transpilers/swc-experimental" - } -} diff --git a/languages/python/data-science/facebook.csv b/languages/python/data-science/facebook.csv deleted file mode 100644 index a1e6aa2..0000000 --- a/languages/python/data-science/facebook.csv +++ /dev/null @@ -1,21 +0,0 @@ -,country,active,population,percentActive -0,India,340000000,1295210000,26.250569405733433 -1,United States,200000000,323947000,61.738494259863494 -2,Indonesia,140000000,258705000,54.11569161786591 -3,Brazil,130000000,206135893,63.065193600223715 -4,Mexico,98000000,122273473,80.14821007006155 -5,Philippines,88000000,103279800,85.20543223360231 -6,Vietnam,71000000,92700000,76.59115426105717 -7,Thailand,54000000,65327652,82.6602492922905 -8,Egypt,47000000,91290000,51.484280863183265 -9,Bangladesh,46000000,161006790,28.570223653300587 -10,Pakistan,45000000,194125062,23.18093271233572 -11,Colombia,38000000,48759958,77.93279887566761 -12,United Kingdom,38000000,65110000,58.36277069574566 -13,Turkey,37000000,78741053,46.98946558410896 -14,France,33000000,66710000,49.46784590016489 -15,Argentina,31000000,43590400,71.11657612685362 -16,Italy,31000000,60665551,51.099840830589336 -17,Nigeria,31000000,186988000,16.578603974586603 -18,Germany,28000000,81770900,34.24201029950753 -19,Peru,27000000,31488700,85.74504504790607 diff --git a/languages/python/data-science/fakejobs.csv b/languages/python/data-science/fakejobs.csv deleted file mode 100644 index 60578bd..0000000 --- a/languages/python/data-science/fakejobs.csv +++ /dev/null @@ -1,101 +0,0 @@ -,title,company,location -0,Senior Python Developer,"Payne, Roberts and Davis","Stewartbury, AA" -1,Energy engineer,Vasquez-Davidson,"Christopherville, AA" -2,Legal executive,"Jackson, Chambers and Levy","Port Ericaburgh, AA" -3,Fitness centre manager,Savage-Bradley,"East Seanview, AP" -4,Product manager,Ramirez Inc,"North Jamieview, AP" -5,Medical technical officer,Rogers-Yates,"Davidville, AP" -6,Physiological scientist,Kramer-Klein,"South Christopher, AE" -7,Textile designer,Meyers-Johnson,"Port Jonathan, AE" -8,Television floor manager,Hughes-Williams,"Osbornetown, AE" -9,Waste management officer,"Jones, Williams and Villa","Scotttown, AP" -10,Software Engineer (Python),Garcia PLC,"Ericberg, AE" -11,Interpreter,Gregory and Sons,"Ramireztown, AE" -12,Architect,"Clark, Garcia and Sosa","Figueroaview, AA" -13,Meteorologist,Bush PLC,"Kelseystad, AA" -14,Audiological scientist,Salazar-Meyers,"Williamsburgh, AE" -15,English as a second language teacher,"Parker, Murphy and Brooks","Mitchellburgh, AE" -16,Surgeon,Cruz-Brown,"West Jessicabury, AA" -17,Equities trader,Macdonald-Ferguson,"Maloneshire, AE" -18,Newspaper journalist,"Williams, Peterson and Rojas","Johnsonton, AA" -19,Materials engineer,Smith and Sons,"South Davidtown, AP" -20,Python Programmer (Entry-Level),"Moss, Duncan and Allen","Port Sara, AE" -21,Product/process development scientist,Gomez-Carroll,"Marktown, AA" -22,"Scientist, research (maths)","Manning, Welch and Herring","Laurenland, AE" -23,Ecologist,"Lee, Gutierrez and Brown","Lauraton, AP" -24,Materials engineer,"Davis, Serrano and Cook","South Tammyberg, AP" -25,Historic buildings inspector/conservation officer,Smith LLC,"North Brandonville, AP" -26,Data scientist,Thomas Group,"Port Robertfurt, AA" -27,Psychiatrist,Silva-King,"Burnettbury, AE" -28,Structural engineer,Pierce-Long,"Herbertside, AA" -29,Immigration officer,Walker-Simpson,"Christopherport, AP" -30,Python Programmer (Entry-Level),Cooper and Sons,"West Victor, AE" -31,Neurosurgeon,"Donovan, Gonzalez and Figueroa","Port Aaron, AP" -32,Broadcast engineer,"Morgan, Butler and Bennett","Loribury, AA" -33,Make,Snyder-Lee,"Angelastad, AP" -34,"Nurse, adult",Harris PLC,"Larrytown, AE" -35,Air broker,Washington PLC,"West Colin, AP" -36,"Editor, film/video","Brown, Price and Campbell","West Stephanie, AP" -37,"Production assistant, radio",Mcgee PLC,"Laurentown, AP" -38,"Engineer, communications",Dixon Inc,"Wrightberg, AP" -39,Sales executive,"Thompson, Sheppard and Ward","Alberttown, AE" -40,Software Developer (Python),Adams-Brewer,"Brockburgh, AE" -41,Futures trader,Schneider-Brady,"North Jason, AE" -42,Tour manager,Gonzales-Frank,"Arnoldhaven, AE" -43,Cytogeneticist,Smith-Wong,"Lake Destiny, AP" -44,"Designer, multimedia",Pierce-Herrera,"South Timothyburgh, AP" -45,Trade union research officer,"Aguilar, Rivera and Quinn","New Jimmyton, AE" -46,"Chemist, analytical","Lowe, Barnes and Thomas","New Lucasbury, AP" -47,"Programmer, multimedia","Lewis, Gonzalez and Vasquez","Port Cory, AE" -48,"Engineer, broadcasting (operations)",Taylor PLC,"Gileston, AA" -49,"Teacher, primary school","Oliver, Jones and Ramirez","Cindyshire, AA" -50,Python Developer,Rivera and Sons,"East Michaelfort, AA" -51,Manufacturing systems engineer,Garcia PLC,"Joybury, AE" -52,"Producer, television/film/video","Johnson, Wells and Kramer","Emmatown, AE" -53,"Scientist, forensic",Gonzalez LLC,"Colehaven, AP" -54,Bonds trader,"Morgan, White and Macdonald","Port Coryton, AE" -55,Editorial assistant,Robinson-Fitzpatrick,"Amyborough, AA" -56,Photographer,"Waters, Wilson and Hoover","Reynoldsville, AA" -57,Retail banker,Hill LLC,"Port Billy, AP" -58,Jewellery designer,Li-Gregory,"Adamburgh, AA" -59,Ophthalmologist,"Fisher, Ryan and Coleman","Wilsonmouth, AA" -60,"Back-End Web Developer (Python, Django)",Stewart-Alexander,"South Kimberly, AA" -61,Licensed conveyancer,Abbott and Sons,"Benjaminland, AP" -62,Futures trader,"Bryant, Santana and Davenport","Zacharyport, AA" -63,Counselling psychologist,Smith PLC,"Port Devonville, AE" -64,Insurance underwriter,Patterson-Singh,"East Thomas, AE" -65,"Engineer, automotive",Martinez-Berry,"New Jeffrey, AP" -66,"Producer, radio","May, Taylor and Fisher","Davidside, AA" -67,Dispensing optician,"Bailey, Owen and Thompson","Jamesville, AA" -68,"Designer, fashion/clothing",Vasquez Ltd,"New Kelly, AP" -69,Chartered loss adjuster,Leblanc LLC,"Lake Antonio, AA" -70,"Back-End Web Developer (Python, Django)","Jackson, Ali and Mckee","New Elizabethside, AA" -71,Forest/woodland manager,"Blankenship, Knight and Powell","Millsbury, AE" -72,Clinical cytogeneticist,"Patton, Haynes and Jones","Lloydton, AP" -73,Print production planner,Wood Inc,"Port Jeremy, AA" -74,Systems developer,Collins Group,"New Elizabethtown, AA" -75,Graphic designer,Flores-Nelson,"Charlesstad, AE" -76,Writer,"Mitchell, Jones and Olson","Josephbury, AE" -77,Field seismologist,Howard Group,"Seanfurt, AA" -78,Chief Strategy Officer,Kramer-Edwards,"Williambury, AA" -79,Air cabin crew,Berry-Houston,"South Jorgeside, AP" -80,Python Programmer (Entry-Level),Mathews Inc,"Robertborough, AP" -81,Warden/ranger,Riley-Johnson,"South Saratown, AP" -82,Sports therapist,Spencer and Sons,"Hullview, AA" -83,Arts development officer,Camacho-Sanchez,"Philipland, AP" -84,Printmaker,Oliver and Sons,"North Patty, AE" -85,Health and safety adviser,Eaton PLC,"North Stephen, AE" -86,Manufacturing systems engineer,Stanley-Frederick,"Stevensland, AP" -87,"Programmer, applications",Bradley LLC,"Reyesstad, AE" -88,Medical physicist,"Parker, Goodwin and Zavala","Bellberg, AP" -89,Media planner,Kim-Miles,"North Johnland, AE" -90,Software Developer (Python),Moreno-Rodriguez,"Martinezburgh, AE" -91,"Surveyor, land/geomatics",Brown-Ortiz,"Joshuatown, AE" -92,Legal executive,Hartman PLC,"West Ericstad, AA" -93,"Librarian, academic",Brooks Inc,"Tuckertown, AE" -94,Barrister,Washington-Castillo,"Perezton, AE" -95,Museum/gallery exhibitions officer,"Nguyen, Yoder and Petty","Lake Abigail, AE" -96,"Radiographer, diagnostic",Holder LLC,"Jacobshire, AP" -97,Database administrator,Yates-Ferguson,"Port Susan, AE" -98,Furniture designer,Ortega-Lawrence,"North Tiffany, AA" -99,Ship broker,"Fuentes, Walls and Castro","Michelleville, AP" diff --git a/languages/python/data-science/ngrams/comparison/dubious, orangutan, round, mockingjay, aloof - 1800-2019.csv b/languages/python/data-science/ngrams/comparison/dubious, orangutan, round, mockingjay, aloof - 1800-2019.csv deleted file mode 100644 index fdcb96a..0000000 --- a/languages/python/data-science/ngrams/comparison/dubious, orangutan, round, mockingjay, aloof - 1800-2019.csv +++ /dev/null @@ -1,6 +0,0 @@ -,word,stdev,mean,median,mode,range,q1,q3,iqr -0,dubious,8.074856963177907e-07,2.542098164301882e-06,2.5695727734793242e-06,4.196504846731841e-06,3.0245116704463726e-06,1.7397420484550302e-06,3.226037254730077e-06,1.4862952062750469e-06 -1,orangutan,5.6744864045068366e-08,3.709309897005132e-08,4.059187335465302e-09,0.0,2.0444374675727367e-07,1.531135297914789e-09,5.4957968334942316e-08,5.3426833037027525e-08 -2,round,3.7075802680862356e-05,9.990977901072485e-05,9.360353422899996e-05,0.00014768174514756538,0.00010513432425796054,6.460826716647716e-05,0.0001398687179192036,7.526045075272644e-05 -3,mockingjay,1.1911438316609437e-09,2.859439078539958e-10,0.0,0.0,6.579021454606553e-09,0.0,0.0,0.0 -4,aloof,6.530476796203353e-07,2.167393662317789e-06,1.9966990976172383e-06,1.9491102136726113e-06,2.2848745564780463e-06,1.7225131533190767e-06,2.6828633557280616e-06,9.60350202408985e-07 diff --git a/languages/python/data-science/ngrams/comparison/hallo, hello - 1500-1800.csv b/languages/python/data-science/ngrams/comparison/hallo, hello - 1500-1800.csv deleted file mode 100644 index 4a00492..0000000 --- a/languages/python/data-science/ngrams/comparison/hallo, hello - 1500-1800.csv +++ /dev/null @@ -1,3 +0,0 @@ -,word,stdev,mean,median,mode,range,q1,q3,iqr -0,hallo,9.067572402803685e-07,3.7112208955684736e-07,4.9074362859106e-08,0.0,5.638338344786982e-06,0.0,1.517606246384925e-07,1.517606246384925e-07 -1,hello,1.2565752685195384e-07,1.061839190423912e-07,9.166146648047808e-08,0.0,6.695058151048475e-07,0.0,1.4409192620031979e-07,1.4409192620031979e-07 diff --git a/languages/python/data-science/ngrams/comparison/metropolis, birthday, acidic, bell, weed - 1800-2019.csv b/languages/python/data-science/ngrams/comparison/metropolis, birthday, acidic, bell, weed - 1800-2019.csv deleted file mode 100644 index ba00fab..0000000 --- a/languages/python/data-science/ngrams/comparison/metropolis, birthday, acidic, bell, weed - 1800-2019.csv +++ /dev/null @@ -1,6 +0,0 @@ -,word,stdev,mean,median,mode,range,q1,q3,iqr -0,metropolis,6.073817672768758e-06,7.041652849609334e-06,3.609500173037564e-06,1.642420852476789e-05,1.6955333243069098e-05,1.928710913391894e-06,1.4107718048502907e-05,1.2179007135111014e-05 -1,birthday,3.405409725020581e-06,4.93635729905203e-06,4.5630913194015325e-06,1.55403999713144e-06,1.4859627640362307e-05,2.301730376075284e-06,6.613718677986721e-06,4.311988301911437e-06 -2,acidic,1.6654465043640538e-06,1.3954760914678144e-06,4.975661259517698e-07,2.545503958411339e-09,5.43006051443148e-06,1.0417356749051595e-08,3.052730814293422e-06,3.0423134575443704e-06 -3,bell,4.782058488531253e-06,1.399854644241753e-05,1.3900812583805028e-05,1.338126594419009e-05,1.488321056188267e-05,1.0143385549911598e-05,1.8471108173149074e-05,8.327722623237476e-06 -4,weed,1.0333904520821366e-06,5.493248520879915e-06,5.3136455855045436e-06,4.667169719141384e-06,4.562449346069894e-06,4.725501274346503e-06,6.275106622004906e-06,1.5496053476584033e-06 diff --git a/languages/python/data-science/ngrams/comparison/poop, klutzy - 1800-2019.csv b/languages/python/data-science/ngrams/comparison/poop, klutzy - 1800-2019.csv deleted file mode 100644 index f83dfed..0000000 --- a/languages/python/data-science/ngrams/comparison/poop, klutzy - 1800-2019.csv +++ /dev/null @@ -1,3 +0,0 @@ -,word,stdev,mean,median,mode,range,q1,q3,iqr -0,poop,2.599393484092581e-07,6.139207233218996e-07,6.637646704023479e-07,9.126888329547e-07,1.069131408420227e-06,4.1074716961020385e-07,8.147061285918815e-07,4.039589589816777e-07 -1,klutzy,7.003951820605788e-09,3.2869637653755984e-09,0.0,0.0,2.649079254370333e-08,0.0,1.0566731666248965e-10,1.0566731666248965e-10 diff --git a/languages/python/data-science/ngrams/comparison/shuffle, metal, cancer, tumour, milk, gelatinous - 1800-2019.csv b/languages/python/data-science/ngrams/comparison/shuffle, metal, cancer, tumour, milk, gelatinous - 1800-2019.csv deleted file mode 100644 index 7d251e7..0000000 --- a/languages/python/data-science/ngrams/comparison/shuffle, metal, cancer, tumour, milk, gelatinous - 1800-2019.csv +++ /dev/null @@ -1,7 +0,0 @@ -,word,stdev,mean,median,mode,range,q1,q3,iqr -0,shuffle,2.8673060629074946e-07,5.429429098575131e-07,4.4282361955083616e-07,3.7689945031615935e-07,1.3133971262526584e-06,3.9387709957087023e-07,5.137637860538494e-07,1.1988668648297913e-07 -1,metal,2.0682785887437696e-05,5.254399138449388e-05,4.836078629263543e-05,2.5583417482266668e-05,6.797832975280471e-05,3.6084721484387827e-05,7.032199755485635e-05,3.4237276070468526e-05 -2,cancer,1.7022368592568055e-05,1.5733501132405006e-05,9.378232204783543e-06,1.3189397805035696e-06,5.6970578595740206e-05,4.049281374461446e-06,1.7681010311727213e-05,1.3631728937265768e-05 -3,tumour,2.1500591548720935e-06,4.625488593566766e-06,4.095890549901274e-06,2.4707894965558808e-06,7.625295730966693e-06,3.083135701282507e-06,6.133632479889327e-06,3.0504967786068197e-06 -4,milk,2.7191419514085662e-05,5.2395630572415005e-05,4.103317821448269e-05,3.3496857668069424e-05,8.62747095067919e-05,3.0137208990968895e-05,7.541660098857912e-05,4.527939199761022e-05 -5,gelatinous,6.577880965619697e-07,1.300876115839117e-06,1.4086507625116999e-06,2.0936527675985417e-06,2.1166140616709787e-06,6.835318251725247e-07,1.8606867188607014e-06,1.1771548936881767e-06 diff --git a/languages/python/data-science/ngrams/comparison/spectacle, barrel, crosshair, glue, gluestick - 1800-2019.csv b/languages/python/data-science/ngrams/comparison/spectacle, barrel, crosshair, glue, gluestick - 1800-2019.csv deleted file mode 100644 index a3929b1..0000000 --- a/languages/python/data-science/ngrams/comparison/spectacle, barrel, crosshair, glue, gluestick - 1800-2019.csv +++ /dev/null @@ -1,6 +0,0 @@ -,word,stdev,mean,median,mode,range,q1,q3,iqr -0,spectacle,3.2429480879403344e-06,6.771791915744198e-06,5.856699804748392e-06,9.107587857215549e-06,9.845617114478955e-06,3.648670623793545e-06,9.891341051115887e-06,6.242670427322342e-06 -1,barrel,2.6416769296902955e-06,1.0432005746376187e-05,9.527937696215563e-06,7.765911732349196e-06,9.6085587496678e-06,8.310214460444903e-06,1.2381324755291903e-05,4.071110294847e-06 -2,crosshair,2.152426057712579e-08,1.5914903575085475e-08,5.3222470557707476e-09,0.0,8.227395552142167e-08,4.1986572948563404e-10,2.353045441034445e-08,2.3110588680858816e-08 -3,glue,9.470770325185394e-07,2.7773073278273166e-06,2.5182879507415886e-06,2.1983999829444656e-06,3.7563733436789855e-06,2.09432297992862e-06,3.648930923342656e-06,1.554607943414036e-06 -4,gluestick,5.707736028592825e-10,2.327464443991583e-10,0.0,0.0,2.8080463192787467e-09,0.0,5.2799550446077805e-11,5.2799550446077805e-11 diff --git a/languages/python/data-science/twitchrevenue.csv b/languages/python/data-science/twitchrevenue.csv deleted file mode 100644 index 6690b03..0000000 --- a/languages/python/data-science/twitchrevenue.csv +++ /dev/null @@ -1,201 +0,0 @@ -,channelName,totalSubs,totalCostOfSubs,twitchCuts,totalEarnings -1,RanbooLive,114322.0,407894.94,203289.94,255807.5 -2,xQcOW,75139.0,125059.43000000001,62176.93000000001,147895.0 -3,NICKMERCS,57700.0,152240.45,75327.95000000001,111122.5 -4,HasanAbi,55035.0,98657.06000000001,49009.56000000001,92175.0 -5,Gaules,,,, -6,AdinRoss,50336.0,118728.38,59193.380000000005,98737.5 -7,ibai,45868.0,86787.28,43247.28,113835.0 -8,auronplay,45048.0,104293.63,51931.130000000005,102075.0 -9,Sintica,,,, -10,summit1g,37416.0,97974.54,48624.53999999999,77382.5 -11,casimito,31117.0,26008.17,12968.169999999998,68585.0 -12,MontanaBlack88,29022.0,67276.32,33526.32000000001,66227.5 -13,Repullze,,,, -14,Trainwreckstv,26336.0,79507.26,39592.259999999995,57235.0 -15,Philza,,,, -16,chowh1,23925.0,96620.56,48013.06,58110.0 -17,ludwig,,,, -18,LVNDMARK,23681.0,67420.27,33157.770000000004,56697.5 -19,juansguarnizo,23228.0,58643.91,29198.910000000003,51982.5 -20,Amouranth,22648.0,81019.78000000001,40312.28000000001,52667.5 -21,Odablock,,,, -22,Anastasia_Rose_Official,,,, -23,MOONMOON,21247.0,57008.29,27768.29,51417.5 -24,Sykkuno,21221.0,78462.95000000001,38932.95000000001,50885.0 -25,alanzoka,20862.0,16598.640000000003,8188.640000000003,46437.5 -26,moistcr1tikal,20171.0,59665.64000000001,29538.140000000007,47617.5 -27,Mizkif,20121.0,44622.18,22192.18,39840.0 -28,PaymoneyWubby,20000.0,71592.23000000001,35454.73000000001,47950.0 -29,iiTzTimmy,19913.0,64737.439999999995,32194.939999999995,47077.5 -30,AdmiralBahroo,19484.0,47963.520000000004,23683.520000000004,37547.5 -31,LIRIK,19105.0,37611.05,18706.050000000003,42947.5 -32,TheRealKnossi,18350.0,44991.15,22401.15,41780.0 -33,richwcampbell,18315.0,72018.12,35813.119999999995,44652.5 -34,Pestily,17857.0,80125.3,39460.3,47625.0 -35,JLTomy,17391.0,49641.950000000004,24709.450000000004,39565.0 -36,Locklear,17327.0,58711.4,29118.9,41695.0 -37,BobbyPoffGaming,,,, -38,VooDooSh,16978.0,86177.05000000002,42752.05000000002,43542.5 -39,MckyTV,16962.0,51698.200000000004,25703.200000000004,40060.0 -40,tommyinnit,16774.0,40335.450000000004,20082.950000000004,32392.5 -41,LuckyChamu,,,, -42,TimTheTatman,16658.0,45007.03999999999,22377.039999999994,37942.5 -43,Zoomaa,,,, -44,RATIRL,16326.0,58901.01,28901.010000000002,40712.5 -45,LosPollosTV,16197.0,54406.64,27119.14,37705.0 -46,BruceGreene,,,, -47,Kamet0,15702.0,40260.38,20042.879999999997,35900.0 -48,Tubbo,15578.0,65685.61,32683.11,39605.0 -49,alexelcapo,15500.0,19126.930000000004,9536.930000000004,34825.0 -50,Jerma985,15261.0,33834.01,16804.010000000002,34757.5 -51,GRONKH,15062.0,44627.149999999994,22229.649999999994,34997.5 -52,scump,15009.0,56338.27,28058.269999999997,35410.0 -53,Rubius,14812.0,30555.460000000003,15155.460000000003,33820.0 -54,WELOVEGAMES,,,, -55,NoWay4u_Sir,14613.0,23085.920000000002,11418.420000000002,33367.5 -56,loltyler1,14604.0,26793.05,13285.55,33295.0 -57,buddha,14522.0,51802.63,25787.629999999997,34017.5 -58,ZeratoR,14502.0,46808.46000000001,23273.460000000006,33747.5 -59,GernaderJake,,,, -60,Elraenn,14319.0,27696.25,13731.25,32882.5 -61,CohhCarnage,14280.0,54026.46000000001,26753.960000000006,35877.5 -62,Dhalucard,14165.0,56116.170000000006,27841.170000000006,34907.5 -63,Cellbit,14129.0,22784.54,11362.04,31717.5 -64,Asmongold,13901.0,35161.560000000005,17451.560000000005,32227.5 -65,BruceDropEmOff,,,, -66,elxokas,,,, -67,IlloJuan,,,, -68,Ramee,,,, -69,WilburSoot,13384.0,46532.850000000006,23187.850000000006,31102.5 -70,RatedEpicz,13246.0,48165.71000000001,23938.210000000006,31527.5 -71,eliasn97,13212.0,23423.570000000003,11671.070000000003,29975.0 -72,wtcN,13107.0,26817.920000000006,13295.420000000006,30077.5 -73,TSM_ImperialHal,12655.0,41339.46,20521.96,29725.0 -74,exzachtt,,,, -75,ElMariana,12447.0,25579.03,12749.029999999999,27610.0 -76,Tumblurr,12409.0,22470.910000000003,11165.910000000003,28527.5 -77,ShahZaM,12347.0,29183.42,14468.419999999998,28640.0 -78,Trymacs,12273.0,14955.39,7452.889999999999,27092.5 -79,Tectone,,,, -80,chessbrah,,,, -81,Lysium,,,, -82,Shotz,11728.0,54672.51,27177.510000000002,29200.0 -83,DarioMocciaTwitch,11673.0,14461.78,7176.780000000001,26202.5 -84,TeePee,11508.0,40383.83,19888.83,28110.0 -85,Ailenax,,,, -86,AussieAntics,,,, -87,Jelty,11281.0,23383.7,11641.2,25307.5 -88,Aydan,11152.0,45151.090000000004,22453.590000000004,26920.0 -89,sodapoppin,10988.0,24732.28,12252.279999999999,25097.5 -90,forsen,10988.0,28190.88,13980.880000000001,25152.5 -91,Maximilian_DOOD,10966.0,34722.69,17257.690000000002,25445.0 -92,Swagg,10951.0,41583.5,20703.5,25805.0 -93,Zerkaa,,,, -94,PENTA,10711.0,43194.31,21524.309999999998,25752.5 -95,shroud,10539.0,22785.58,11303.080000000002,23710.0 -96,Punz,,,, -97,PietSmiet,10346.0,34238.090000000004,17018.090000000004,24775.0 -98,loud_coringa,10273.0,19825.420000000002,9887.920000000002,22910.0 -99,jbzzed,10254.0,40585.26,20175.260000000002,25045.0 -100,Staryuuki,10240.0,48295.19,24015.190000000002,25737.5 -101,ShoXx__,,,, -102,TheGrefg,10094.0,17300.52,8623.02,22687.5 -103,SmallAnt,,,, -104,AnEternalEnigma,,,, -105,KYR_SP33DY,9986.0,34368.82,17031.32,24012.5 -106,CriticalRole,9850.0,24556.89,12221.89,21622.5 -107,Sapnap,9782.0,39645.89000000001,19768.390000000007,23117.5 -108,fps_shaka,9773.0,9461.77,4686.77,15352.5 -109,BarbarousKing,9702.0,36730.5,18143.0,23797.5 -110,mang0,9688.0,33983.79,16888.79,22920.0 -111,Sweatcicle,,,, -112,Kyle,,,, -113,GsxrClyde,,,, -114,ProblemWright,,,, -115,CDNThe3rd,9326.0,36245.0,17970.0,22775.0 -116,Moonryde,,,, -117,Ponce,9210.0,26992.230000000003,13427.230000000003,21187.5 -118,ZanoXVII,9200.0,6317.54,3142.54,20330.0 -119,Shlorox,9104.0,30790.82,15265.82,21867.5 -120,GTAWiseGuy,,,, -121,ELoTRiX,9075.0,32711.510000000002,16231.510000000002,21917.5 -122,YoDa,9003.0,8253.67,4108.67,20050.0 -123,dmajszi,,,, -124,GrandPOObear,8899.0,39816.310000000005,19818.810000000005,21982.5 -125,RayNarvaezJr,8884.0,37642.58,18445.08,23170.0 -126,Whippy,,,, -127,AnnieFuchsia,,,, -128,MAZA4KST,,,, -129,Agraelus,8601.0,38918.24,19373.239999999998,20495.0 -130,knekro,8565.0,13029.53,6472.030000000001,19442.5 -131,IceManIsaac,,,, -132,Kiva,,,, -133,Gotaga,8461.0,26732.61,13295.11,19797.5 -134,KendineMuzisyen,8452.0,11358.210000000001,5623.210000000001,18940.0 -135,DavidLafargeOFF,,,, -136,RonnieRadke,,,, -137,KarmikKoala,8264.0,42784.71,21092.21,21820.0 -138,AvoidingThePuddle,8228.0,22536.750000000004,11179.250000000004,19110.0 -139,DiazBiffle,,,, -140,Reborn_Live,8204.0,38675.24,19125.239999999998,21737.5 -141,mistermv,8174.0,19982.280000000002,9879.780000000002,18910.0 -142,MYM_ALKAPONE,8160.0,13233.94,6581.4400000000005,18285.0 -143,TobiasFate,8144.0,20994.38,10406.880000000001,19100.0 -144,Timmac,,,, -145,Tfue,8009.0,23124.820000000003,11487.320000000003,18502.5 -146,Kitboga,7979.0,27207.32,13497.32,18992.5 -147,TheNicoleT,,,, -148,IamCristinini,7909.0,28928.190000000002,14383.190000000002,19140.0 -149,Papaplatte,7875.0,10025.39,4985.389999999999,17780.0 -150,melharucos,7820.0,43778.520000000004,21341.020000000004,22567.5 -151,Foolish_Gamers,7817.0,32530.76,16193.259999999998,18800.0 -152,cloakzy,7745.0,26792.460000000003,13322.460000000003,17955.0 -153,Snip3down,,,, -154,Castro_1021,7680.0,20310.190000000002,10095.190000000002,17497.5 -155,Amar,,,, -156,CPentagon,,,, -157,Ninja,7602.0,20370.23,10120.23,17575.0 -158,AnniTheDuck,7552.0,27461.27,13648.77,18222.5 -159,Quin69,7541.0,27188.57,13403.57,18675.0 -160,Atrioc,,,, -161,JesusAVGN,7517.0,36308.85,18056.35,18380.0 -162,fuslie,,,, -163,capturesca,,,, -164,sweetdreams,7403.0,32083.11,15928.11,18395.0 -165,elded,7398.0,19009.29,9424.29,17132.5 -166,RvNxMango,,,, -167,Altair,7293.0,30255.3,14795.3,19135.0 -168,JASONR,7291.0,31982.190000000002,15894.690000000002,18045.0 -169,Smzinho,7142.0,6741.840000000001,3346.840000000001,15865.0 -170,FolagorLives,7130.0,18832.49,9387.490000000002,17892.5 -171,Radlerauge,,,, -172,Mystixx,,,, -173,Dropped,,,, -174,Sequisha,,,, -175,Putupau,6981.0,15199.86,7569.860000000001,15842.5 -176,LuluLuvely,,,, -177,Sardoche,6818.0,15524.96,7702.459999999999,15580.0 -178,POW3Rtv,6784.0,7974.63,3949.63,15152.5 -179,xRohat,,,, -180,BabyBouge,,,, -181,SypherPK,6700.0,20929.13,10389.130000000001,16547.5 -182,pqueen,,,, -183,pokimane,6607.0,23795.609999999997,11690.609999999997,16150.0 -184,Elajjaz,6603.0,20745.18,10280.18,15652.5 -185,bt0tv,6597.0,17245.61,8600.61,15140.0 -186,sleepy,,,, -187,Perxitaa,6577.0,25818.399999999998,12878.399999999998,15752.5 -188,HellYeahPlay,,,, -189,FrostPrime_,,,, -190,HusKerrs,6567.0,24337.15,12102.150000000001,15712.5 -191,Domingo,6566.0,18433.86,9163.86,14927.5 -192,TrilluXe,6565.0,33259.35,16554.35,16705.0 -193,stylishnoob4,6522.0,10648.88,5303.879999999999,14672.5 -194,NeskWgA,,,, -195,RoyalPhunk,6404.0,26293.970000000005,13056.470000000005,15752.5 -196,sargentocharli,,,, -197,MissJuneDJ,,,, -198,Spofie,,,, -199,firedancer,,,, -200,elwycco,6267.0,30529.84,15194.84,15437.5 diff --git a/languages/python/gd-two-star-list/2stars.csv b/languages/python/gd-two-star-list/2stars.csv deleted file mode 100644 index 8b5b29d..0000000 --- a/languages/python/gd-two-star-list/2stars.csv +++ /dev/null @@ -1,446 +0,0 @@ -6508283,ReTraY,4521656 -4454123,Sonar,3507652 -26618473,Promises,3187364 -11280109,Dark Paradise,3069266 -11630859,ThE WorLd,1381964 -2867632,lucid dream,1365470 -21923305,Ocean Of Dreams,1098831 -23356701,Warmth,1034024 -11945914,SUNSET,962866 -1729,DARKNESS,884574 -13935609,a spark of life,837582 -2546328,Flappy Jumper 2,782825 -2443491,xDARKx,778718 -14074637,feather,764303 -10970301,Bright Eclipse,708210 -12194579,For Science,641082 -26561853,When The Leaves Fall,640159 -977287,Stageix,614428 -3325797,Findexis Madness 2,591227 -9787477,Gawne Forever,564121 -14485066,Paint on Track,540424 -70196,Practice Level,539984 -11941828,Practice domination,510846 -3945967,Moving Obstacles,497291 -12640275,Dream of Night,471024 -14206606,Paint Madness,468483 -14375455,Colory,454957 -1842894,Flight Of Space 1,437931 -32400752,IZnite,435313 -13241784,dorabae-quiz,435089 -1239645,Invisible on track,412731 -13226698,Whirlwind,409452 -16754209,Geometry Dance,394725 -2816038,Stereo Madness 2,378790 -7894312,PeAsY WoRlD II,372023 -14325059,Universe,366693 -13935221,Gravity Falls,365092 -6458589,If Cataclysm was L1,346492 -14116476,Never Be Alone,346327 -12638235,Serene time,332516 -14307902,Whipped Cream,332502 -13318490,Adrift,322709 -11686946,Never Be Alone,309575 -3049084,pur1ty ,298129 -12993248,Super Mario Galaxy,297973 -15650565,Sacred Crescent,285043 -6392228,flappy crystal,283458 -13455501,AlterGame,281857 -13113862,Blossoms,278342 -12725323,Aurora,273718 -52128,1,263654 -2410286,ECOnomix,256016 -13296070,StarLight,252670 -7828357,Traum,249860 -14015303,DragonS,249652 -18628381,The Calling ,248580 -17806788,Fantasy,237780 -14256752,iEuPhoriai,237117 -34749502,Candescent,236938 -15091600,SuPernoVa,234688 -8663057,Hyper Dream,231046 -26758645,lonely,229333 -5226832,Divine Airflow,221538 -1757461,IF Clubstep was Lv1,218625 -17250385,Xenogenesis,218246 -8242166,Mario bros,217259 -6956751,flappy emerald,215830 -34224737,Wishless,213496 -13506658,Lullaby,212944 -8795831,Flappy bird,212089 -274283,Demons,209011 -33541887,Flore,202993 -17496044,AlterGame IV,202052 -13059832,Luminous,198118 -23454590,Sadness,193643 -14152721,rEd OrIgIn,191431 -5356370,Glow Surface,190367 -6709812,Flappy Rubins,186555 -14250437,Determination,186431 -33178604,Flickering,184211 -18257585,Airflow,183398 -18974476,Hill Climb Racing,178418 -16724793,Never be alone,178128 -15778799,OccasuS,176228 -9227947,Minecraft Life,172720 -6767410,Sapphire,169830 -27091198,Beautiful Now,168164 -25325495,Exploration,165572 -35844907,Tic Tac Toe,164099 -28601858,Cosmos,163154 -22054803,Airwaves,162572 -32287561,Dreams,161118 -13626540,ambience,160174 -16294328,Ghostbusters III,157837 -17649626,Hepatica,154132 -14048440,iIiBlushiIi,151488 -8101206,TopaZ,151469 -7321011,Flappy Sapphire,148433 -27553978,Forever,147975 -20694170,100 Millionth Level,147570 -34413161,Nevermind,146827 -4193687,If TOE2 was level 1,146053 -33932022,Amnesty,144843 -33855024,Soothe,140554 -37074698,Escape,139917 -7156598,Cosmic Dolphin,135428 -6373869,BdoubleO,134301 -15742990,Ramoth,131358 -25126221,Unknown,130981 -6739392,Stardrive ,130463 -26509337,bright light,130304 -3380956,Stereo Madness 2,127255 -34447420,Easy Seas,123472 -16477137,Deviant,123459 -1598815,Stereo Demoness,122438 -25849693,Alpha,121158 -50978,Rainforest,120273 -27986788,Hibernation,119630 -35494138,Vapored,119344 -17846717,Journey,118937 -16340126,Unicorn of the Sea,118247 -14885507,Limitless,118119 -27131405,Orbis,113375 -10679248,Super Mario World,109915 -2978563,Stereo Madness 2,108162 -18309012,Pokemon Battle V3,106651 -30940090,Lonely Heart,106046 -17264945,BiolumInesCenT,106023 -3578207,Electro Replica BoT,103694 -37158612,Canon,102780 -36216543,FOOD LAND,102121 -9844705,Time Glitch,101069 -27773001,Road of Vanishing,100832 -40946217,Tragic End,100826 -28420508,Double Triple Trial,100592 -16517491,Climate Cartoon,99730 -9977762,Cosmic dreamer,97127 -7433575,Surfing The Wind,96198 -11837963,windfall,94625 -34044719,Thoughtless,94581 -9224105,Keys,91476 -269331,Mono Madness,91296 -8891941,Asleep,91093 -7366219,World Of Fantasy,89680 -15171074,XMas Challenge,88276 -31674919,Lonely,87174 -34911518,Metaverse,86658 -9442809,Gawne returns,85796 -11806250,Poltergeist wave,85247 -33985856,Aporia,85195 -3943870,Easy Stereo Madness,84977 -67381,lode gate,84222 -11433327,Happy Hour,83830 -156124,Dash of dash 2,81958 -10659339,Space Galaxy,81852 -34238194,Gloomy Forest,81304 -35937985,ANoxia,80437 -1589851,back on future,78924 -25673838,Oncove,78546 -9098488,Gawne,76528 -3747620,Stereo Madness V2,75561 -7883168,Force Of Fantasy,71942 -30434082,Space Expedition,69373 -51173274,weird,67565 -39502342,Mizu,67488 -39101602,Sentience,67237 -8405457,Surface,66963 -33200652,Fairia,65925 -9227843,xcropolis,65662 -34799197,For You,65514 -62073,soft mountion,65347 -15173182,Paradise Lost ,64986 -36652594,Mirage,64810 -37322842,Honey Moon,64590 -10657894,Glorious Morning,64311 -6229146,PeacefullY,64176 -11130144,Robot Madness,64083 -42986230,E,63736 -65109444,Nice,61945 -9539030,Crispy Game,59947 -13405010,Fantasia,59819 -3538583,Glitter Madness 2,59795 -19592976,Virtual Stimulus,58992 -18093873,Monody,57017 -11064188,20 madness,56799 -6431528,BdoubleO,55985 -91556,csmmmm xdd,55969 -11813110,time travel,55844 -40138985,4 AM,54634 -57551137,Ayu,54214 -55037478,Serponge Look At Me,53921 -11777209,Hallowed Ocean,53811 -9085581,Stereo Madness V2,53103 -244079,Abc,52832 -54664621, TIA,52332 -12282802,The NighT,52274 -1174225,Analogue Madness,52190 -8354764,aqua of miracle,49380 -59760047,Less than three,49269 -14719029,Telluric,49057 -42088280,Trees II,48796 -20271866,Wolheimers Triumph,48309 -155463,practice step,47995 -21968268,Exitus,47353 -8919336,aqua marine,47238 -11660471,Sweet Dreams,46502 -50341465,Abre Tus Ojos,46264 -49045979,Danfins,45820 -69582529,Coeur Lambeaux,45661 -14958919,TrIsTerY,45438 -9316079,The Lonely Life ,44945 -17648856,Buckle Your pants,44834 -14385242,Abyss II,44719 -9697146,Dancing Moonman,44589 -38348152,Shaded Forest,44405 -8099154,Golden Haze,44161 -4078954,Easy Back On Track,43064 -67661363,Geometry Dash,42849 -18638877,Romantique,41918 -66152948,Monody,39640 -12191390,never alone,38383 -137233,Geometry Level 1,38052 -14653485,Freedom,38029 -13767461,The Eighth,38013 -35750087,Choo,37960 -27613882,Feelings,37904 -6617563,Stereo Madness 2 ,36897 -14375184,Madness,36862 -25081326,New Stereo Madness,36550 -11863768,Archaic Cosmos,36500 -18663466,BuBBle GuM,36498 -10212504,Sunset Valley,36105 -9112375,Essence of Light,36101 -55976208,Aulta,36080 -14355897,Colour Tales,35864 -219906,joloflip,34085 -17570659,new Planet New World,33949 -55215779,Aer,33699 -48054705,Sagirism,33213 -47579492,Ongaku,33141 -49219688,Owo,33036 -20336469,After World,32516 -172810,RAINBOW white,32406 -22199039,Wisp,32313 -14409896,Paper world,32255 -44568447,Conclusion,32253 -216004,banana milk 1,32190 -13699131,Magnetoscope,32168 -54476612,Frostbite,32085 -13374719,ApeX,31682 -15666330,Lost memories,31193 -55283238,Jessy ,30892 -56974779,Unbend,29924 -13077712,Telescope,29725 -13322137,SpaceDream,29508 -60791071,Cinnamon,29444 -16139525,GoodbyE Fi,29335 -60092456,Arcane River,29136 -49899508,Relaxation,28953 -68263042,Distant Horizon,28780 -60087537,Anymore,28256 -14341100,The Nova,28231 -159932,Polargiest Easy,28088 -137573,fly master 1,28066 -18152461,Paradise,27963 -11306807,Paper Mario TTYD,27690 -65707442,The Woods,27320 -54925887,Hal,26619 -66539851,Swag City,26489 -15661129,Remembered,25874 -50916119,Lost,25734 -48049215,Yousei,25604 -216159,desert run,25436 -58521673,Lisa,25243 -52604345,Awe,25033 -15029162,SpArEd,24824 -66149804,Emily Blunt,24773 -52195963,Nostalgia,24674 -9479326,VietNam Wonders,24635 -37659783,Meiria,24631 -13704968,SkyColor,24580 -13146798,Forest Adventure I,24432 -49924382,A Distand Melody,24151 -64803948,Sneaky Snake,23513 -13400251,THE SUNRISE,23317 -13367607,My World,23259 -14370126,Sweet Christmas,23197 -67463002,Felicity,23055 -35186842,Shakey Boss Fight,22946 -58977211,thespikeisoverthere,22714 -47346090,Flip,22623 -57545756,Buglo,22545 -56458670,Hold,22519 -51455232,impulsive surrounds,22211 -57047877,Terra,22116 -13146729,Feist,21875 -120652,stairs,21856 -7507591,Your Prelude r2,21826 -70296287,Enchanted Adventure,21803 -62374745,little soul,21229 -49623654,Domi,20933 -52321279,Lack of Time,20172 -55731749,Lovely,19952 -12522005,Dream Catcher,19867 -56893141,Dream,19786 -57061521,Broom Journey,19643 -50641318,Christmas Storm,18813 -54479697,A P P II,18797 -66766246,spike spike spike,18500 -60467278,Nelis100,18452 -58548056,Quiaet,18059 -66944745,Seven Burgers,17768 -50952421,Fika,17738 -63553770,Anna,17534 -69049060,Dissonance,17400 -11542127,Thousand Engine,17385 -67315935,microphone,17366 -51658696,Made in,16859 -54611457,Aspire,16610 -54801141,Smooth,16508 -50995063,Absi,16425 -59177605,TranquillitY,16287 -64153806,Moment,15964 -59073467,Paracity,15962 -62743002,Split Path,15889 -37182888,Future Life,15757 -56253412,Relaxing Paradise,15062 -64103157,extreme demon,14843 -62095015,Diverge,14837 -49807324,Ikra ,14228 -58195391,ayup,14109 -59032507,Ocarina,13521 -59708310,Magical,13195 -70174316,My Little Angel,12994 -69701323,Actual,12836 -66539358,Frappuccino,12799 -61167144,Wonder,12463 -52577127,refresh,12323 -55825525,Pure of Heart,12301 -57933522,Keep it Simple,11997 -58107944,Sacha,11983 -65270192,Rosa,11814 -64056232,Always You,11615 -59561688,LoVe II,11521 -58201541,Ascension,11478 -59957442,GoodBye,11433 -55831636,Negativo,10996 -61203856,Windless,10862 -57299546,Palermo,10759 -61174095,The Wisp,10751 -57958302,SpO0kY,10690 -56753706,Krasnodar Region,10420 -44083098,Lemons,10397 -65624034,Up to five,10391 -55929353,Dreary,10309 -68179284,DaBaby,9938 -58014525, ,9840 -55093553,Jacuzzi,9698 -57872755,Re,9662 -69531518,Castle,9561 -70447528,Love of flight,9527 -57052078,easy,9522 -69079023,Lonelian,9425 -62906370,716,9383 -58439494,Seventy Nine,9340 -65895417,WinteR,9316 -64718148,Pocket Infinity,9238 -63724244,Namice,9100 -62056335,World Record,8754 -65625598,25 I 12 I 20 ,8452 -61493494,A little dream,8419 -59715641,Heartache,8393 -63634297,Chrome II,8364 -65226411,Fullness,8342 -63371156,feeding time,8295 -60026412,Midnight Vibes,8224 -66012376,Monolith,8097 -66802514,EthereaL,8052 -69069448,Allay,7996 -62306378,wasteland,7923 -62865428,Awe,7837 -66230315,Parapolis,7714 -65235417,Agua Nocturno,7712 -68899885,uplift,7620 -58841839,Varying Christmas,7557 -67702859,Squidely Dream,7533 -65574708,COOL,7510 -68784158,Flashing Trip,7492 -64279419,ABC,7422 -51674687,NoTsRs,7410 -67853336,Szymon Kalisz,7319 -56728108,Somewhere in Peru,7294 -57016061,harmonious,7178 -64743797,Your So Good at Golf,7128 -70069393,Relax Zone,7005 -64886856,happy halloween,6911 -68629740,peace,6701 -65758217,Chronology,6519 -70856801,Danny,6447 -67386414,Mercy,6153 -64507537,Stride,6101 -66902477,spirit,6074 -71257097,Forever and ever,5990 -67881256,An Ominous Walk,5952 -68543406,Honda Civic,5648 -65769212,abroad,5634 -67575144,sunset,5460 -67585420,Interlude I,5353 -60521512,Loth,5321 -71056684,falling apart,5136 -68890229,Great,4812 -61013776,the button,4780 -67651373,Fur Mmath,4759 -69003687,Rice,4751 -67052198,Algophobia,4709 -65603278,ColorBlast,4678 -68079038,PuritY,4604 -64932898,Anemone,4590 -67180546,Snowbound,4500 -65177675,Huawei,4450 -66210744,excel,4358 -65984942,1 800 NOSTALGIA,4328 -69732552,Spectral Calamity,4313 -67598567,Squimbus,4268 -65351469,Tethys,4122 -70584466,Cloud Surfin,4029 -68044624,Blefuscu,3926 -70149360,Xstar7,3816 -71186483,Reverse rain,3758 -66046798,WORLD WARP,3737 -66267209,Ausks New Boat,3564 -67511827,Memori,3523 -66239080,dilute illusion,3480 -75944,back ond karim,3266 -70257328,Looja,3220 -68982262,Idibus Martiis,3182 -70461662,slowness,2379 -109953,stereo madless,-876 -206530,Frozen Netherlands,-1288 -219938,Area 51,-5005 -174270,Cycles Polargeist,-7470 -84592,sky run,-7900 -218497,google,-11992 -448229,geometry dash quiz,-29612 -68184,Challenge,-59445 -293446,Extreme Disaster,-61297 diff --git a/languages/python/calculators/Babylonian Square Root.py b/python/calculators/Babylonian Square Root.py similarity index 100% rename from languages/python/calculators/Babylonian Square Root.py rename to python/calculators/Babylonian Square Root.py diff --git a/languages/python/calculators/Binomial Distribution.py b/python/calculators/Binomial Distribution.py similarity index 100% rename from languages/python/calculators/Binomial Distribution.py rename to python/calculators/Binomial Distribution.py diff --git a/languages/python/calculators/Binomial Expansion.py b/python/calculators/Binomial Expansion.py similarity index 100% rename from languages/python/calculators/Binomial Expansion.py rename to python/calculators/Binomial Expansion.py diff --git a/languages/python/calculators/Karatsuba Algorithm.py b/python/calculators/Karatsuba Algorithm.py similarity index 100% rename from languages/python/calculators/Karatsuba Algorithm.py rename to python/calculators/Karatsuba Algorithm.py diff --git a/languages/python/calculators/Multinomial Expansion.py b/python/calculators/Multinomial Expansion.py similarity index 100% rename from languages/python/calculators/Multinomial Expansion.py rename to python/calculators/Multinomial Expansion.py diff --git a/languages/python/calculators/PMCC.py b/python/calculators/PMCC.py similarity index 100% rename from languages/python/calculators/PMCC.py rename to python/calculators/PMCC.py diff --git a/languages/python/calculators/Pascal's Triangle.py b/python/calculators/Pascal's Triangle.py similarity index 100% rename from languages/python/calculators/Pascal's Triangle.py rename to python/calculators/Pascal's Triangle.py diff --git a/languages/python/calculators/SRCC.py b/python/calculators/SRCC.py similarity index 100% rename from languages/python/calculators/SRCC.py rename to python/calculators/SRCC.py diff --git a/languages/python/calculators/Trigometric Functions.py b/python/calculators/Trigometric Functions.py similarity index 100% rename from languages/python/calculators/Trigometric Functions.py rename to python/calculators/Trigometric Functions.py diff --git a/languages/python/calculators/_helpers/__init__.py b/python/calculators/_helpers/__init__.py similarity index 100% rename from languages/python/calculators/_helpers/__init__.py rename to python/calculators/_helpers/__init__.py diff --git a/languages/python/calculators/_helpers/floatInput.py b/python/calculators/_helpers/floatInput.py similarity index 100% rename from languages/python/calculators/_helpers/floatInput.py rename to python/calculators/_helpers/floatInput.py diff --git a/languages/python/calculators/_helpers/intInput.py b/python/calculators/_helpers/intInput.py similarity index 100% rename from languages/python/calculators/_helpers/intInput.py rename to python/calculators/_helpers/intInput.py diff --git a/languages/python/calculators/_helpers/listInput.py b/python/calculators/_helpers/listInput.py similarity index 100% rename from languages/python/calculators/_helpers/listInput.py rename to python/calculators/_helpers/listInput.py diff --git a/languages/python/calculators/nth root.py b/python/calculators/nth root.py similarity index 100% rename from languages/python/calculators/nth root.py rename to python/calculators/nth root.py diff --git a/languages/python/calculators/pi.py b/python/calculators/pi.py similarity index 100% rename from languages/python/calculators/pi.py rename to python/calculators/pi.py diff --git a/languages/python/chunkArray.py b/python/chunkArray.py similarity index 100% rename from languages/python/chunkArray.py rename to python/chunkArray.py diff --git a/languages/python/data-science/Fake Jobs.py b/python/data-science/Fake Jobs.py similarity index 100% rename from languages/python/data-science/Fake Jobs.py rename to python/data-science/Fake Jobs.py diff --git a/languages/python/data-science/Twitch Revenue.py b/python/data-science/Twitch Revenue.py similarity index 100% rename from languages/python/data-science/Twitch Revenue.py rename to python/data-science/Twitch Revenue.py diff --git a/languages/python/data-science/facebook.py b/python/data-science/facebook.py similarity index 100% rename from languages/python/data-science/facebook.py rename to python/data-science/facebook.py diff --git a/languages/python/data-science/ngrams/comparison/comparison.py b/python/data-science/ngrams/comparison/comparison.py similarity index 100% rename from languages/python/data-science/ngrams/comparison/comparison.py rename to python/data-science/ngrams/comparison/comparison.py diff --git a/languages/python/data-science/ngrams/comparison/dubious, orangutan, round, mockingjay, aloof - 1800-2019.png b/python/data-science/ngrams/comparison/dubious, orangutan, round, mockingjay, aloof - 1800-2019.png similarity index 100% rename from languages/python/data-science/ngrams/comparison/dubious, orangutan, round, mockingjay, aloof - 1800-2019.png rename to python/data-science/ngrams/comparison/dubious, orangutan, round, mockingjay, aloof - 1800-2019.png diff --git a/languages/python/data-science/ngrams/comparison/hallo, hello - 1500-1800.png b/python/data-science/ngrams/comparison/hallo, hello - 1500-1800.png similarity index 100% rename from languages/python/data-science/ngrams/comparison/hallo, hello - 1500-1800.png rename to python/data-science/ngrams/comparison/hallo, hello - 1500-1800.png diff --git a/languages/python/data-science/ngrams/comparison/metropolis, birthday, acidic, bell, weed - 1800-2019.png b/python/data-science/ngrams/comparison/metropolis, birthday, acidic, bell, weed - 1800-2019.png similarity index 100% rename from languages/python/data-science/ngrams/comparison/metropolis, birthday, acidic, bell, weed - 1800-2019.png rename to python/data-science/ngrams/comparison/metropolis, birthday, acidic, bell, weed - 1800-2019.png diff --git a/languages/python/data-science/ngrams/comparison/poop, klutzy - 1800-2019.png b/python/data-science/ngrams/comparison/poop, klutzy - 1800-2019.png similarity index 100% rename from languages/python/data-science/ngrams/comparison/poop, klutzy - 1800-2019.png rename to python/data-science/ngrams/comparison/poop, klutzy - 1800-2019.png diff --git a/languages/python/data-science/ngrams/comparison/shuffle, metal, cancer, tumour, milk, gelatinous - 1800-2019.png b/python/data-science/ngrams/comparison/shuffle, metal, cancer, tumour, milk, gelatinous - 1800-2019.png similarity index 100% rename from languages/python/data-science/ngrams/comparison/shuffle, metal, cancer, tumour, milk, gelatinous - 1800-2019.png rename to python/data-science/ngrams/comparison/shuffle, metal, cancer, tumour, milk, gelatinous - 1800-2019.png diff --git a/languages/python/data-science/ngrams/comparison/spectacle, barrel, crosshair, glue, gluestick - 1800-2019.png b/python/data-science/ngrams/comparison/spectacle, barrel, crosshair, glue, gluestick - 1800-2019.png similarity index 100% rename from languages/python/data-science/ngrams/comparison/spectacle, barrel, crosshair, glue, gluestick - 1800-2019.png rename to python/data-science/ngrams/comparison/spectacle, barrel, crosshair, glue, gluestick - 1800-2019.png diff --git a/languages/python/data-science/ngrams/popularity/hallo - 1500-1800.png b/python/data-science/ngrams/popularity/hallo - 1500-1800.png similarity index 100% rename from languages/python/data-science/ngrams/popularity/hallo - 1500-1800.png rename to python/data-science/ngrams/popularity/hallo - 1500-1800.png diff --git a/languages/python/data-science/ngrams/popularity/popularity.py b/python/data-science/ngrams/popularity/popularity.py similarity index 100% rename from languages/python/data-science/ngrams/popularity/popularity.py rename to python/data-science/ngrams/popularity/popularity.py diff --git a/languages/python/data-science/ngrams/popularity/terrified - 1800-2019.png b/python/data-science/ngrams/popularity/terrified - 1800-2019.png similarity index 100% rename from languages/python/data-science/ngrams/popularity/terrified - 1800-2019.png rename to python/data-science/ngrams/popularity/terrified - 1800-2019.png diff --git a/languages/python/gd-two-star-list/script.py b/python/gd-two-star-list/script.py similarity index 100% rename from languages/python/gd-two-star-list/script.py rename to python/gd-two-star-list/script.py diff --git a/languages/python/pong/Ball.py b/python/pong/Ball.py similarity index 100% rename from languages/python/pong/Ball.py rename to python/pong/Ball.py diff --git a/languages/python/pong/Paddle.py b/python/pong/Paddle.py similarity index 100% rename from languages/python/pong/Paddle.py rename to python/pong/Paddle.py diff --git a/languages/python/pong/Pong.py b/python/pong/Pong.py similarity index 100% rename from languages/python/pong/Pong.py rename to python/pong/Pong.py diff --git a/languages/python/pythonchallenge.com/0.jpg b/python/pythonchallenge.com/0.jpg similarity index 100% rename from languages/python/pythonchallenge.com/0.jpg rename to python/pythonchallenge.com/0.jpg diff --git a/languages/python/pythonchallenge.com/1 - Map.py b/python/pythonchallenge.com/1 - Map.py similarity index 100% rename from languages/python/pythonchallenge.com/1 - Map.py rename to python/pythonchallenge.com/1 - Map.py diff --git a/languages/python/pythonchallenge.com/1.jpg b/python/pythonchallenge.com/1.jpg similarity index 100% rename from languages/python/pythonchallenge.com/1.jpg rename to python/pythonchallenge.com/1.jpg diff --git a/languages/python/pythonchallenge.com/10 - Bull.py b/python/pythonchallenge.com/10 - Bull.py similarity index 100% rename from languages/python/pythonchallenge.com/10 - Bull.py rename to python/pythonchallenge.com/10 - Bull.py diff --git a/languages/python/pythonchallenge.com/11 - 5808.py b/python/pythonchallenge.com/11 - 5808.py similarity index 100% rename from languages/python/pythonchallenge.com/11 - 5808.py rename to python/pythonchallenge.com/11 - 5808.py diff --git a/languages/python/pythonchallenge.com/12 - Evil.py b/python/pythonchallenge.com/12 - Evil.py similarity index 100% rename from languages/python/pythonchallenge.com/12 - Evil.py rename to python/pythonchallenge.com/12 - Evil.py diff --git a/languages/python/pythonchallenge.com/13 - Disproportional.py b/python/pythonchallenge.com/13 - Disproportional.py similarity index 100% rename from languages/python/pythonchallenge.com/13 - Disproportional.py rename to python/pythonchallenge.com/13 - Disproportional.py diff --git a/languages/python/pythonchallenge.com/14 - Italy.py b/python/pythonchallenge.com/14 - Italy.py similarity index 100% rename from languages/python/pythonchallenge.com/14 - Italy.py rename to python/pythonchallenge.com/14 - Italy.py diff --git a/languages/python/pythonchallenge.com/2 - OCR.py b/python/pythonchallenge.com/2 - OCR.py similarity index 100% rename from languages/python/pythonchallenge.com/2 - OCR.py rename to python/pythonchallenge.com/2 - OCR.py diff --git a/languages/python/pythonchallenge.com/2.jpg b/python/pythonchallenge.com/2.jpg similarity index 100% rename from languages/python/pythonchallenge.com/2.jpg rename to python/pythonchallenge.com/2.jpg diff --git a/languages/python/pythonchallenge.com/3 - Equality.py b/python/pythonchallenge.com/3 - Equality.py similarity index 100% rename from languages/python/pythonchallenge.com/3 - Equality.py rename to python/pythonchallenge.com/3 - Equality.py diff --git a/languages/python/pythonchallenge.com/3.jpg b/python/pythonchallenge.com/3.jpg similarity index 100% rename from languages/python/pythonchallenge.com/3.jpg rename to python/pythonchallenge.com/3.jpg diff --git a/languages/python/pythonchallenge.com/4 - linkedlist.py b/python/pythonchallenge.com/4 - linkedlist.py similarity index 100% rename from languages/python/pythonchallenge.com/4 - linkedlist.py rename to python/pythonchallenge.com/4 - linkedlist.py diff --git a/languages/python/pythonchallenge.com/4.jpg b/python/pythonchallenge.com/4.jpg similarity index 100% rename from languages/python/pythonchallenge.com/4.jpg rename to python/pythonchallenge.com/4.jpg diff --git a/languages/python/pythonchallenge.com/5 - Peak Hell.py b/python/pythonchallenge.com/5 - Peak Hell.py similarity index 100% rename from languages/python/pythonchallenge.com/5 - Peak Hell.py rename to python/pythonchallenge.com/5 - Peak Hell.py diff --git a/languages/python/pythonchallenge.com/6 - Channel.py b/python/pythonchallenge.com/6 - Channel.py similarity index 100% rename from languages/python/pythonchallenge.com/6 - Channel.py rename to python/pythonchallenge.com/6 - Channel.py diff --git a/languages/python/pythonchallenge.com/7 - Oxygen.py b/python/pythonchallenge.com/7 - Oxygen.py similarity index 100% rename from languages/python/pythonchallenge.com/7 - Oxygen.py rename to python/pythonchallenge.com/7 - Oxygen.py diff --git a/languages/python/pythonchallenge.com/8 - Integrity.py b/python/pythonchallenge.com/8 - Integrity.py similarity index 100% rename from languages/python/pythonchallenge.com/8 - Integrity.py rename to python/pythonchallenge.com/8 - Integrity.py diff --git a/languages/python/pythonchallenge.com/9 - Good.py b/python/pythonchallenge.com/9 - Good.py similarity index 100% rename from languages/python/pythonchallenge.com/9 - Good.py rename to python/pythonchallenge.com/9 - Good.py diff --git a/languages/python/pythonchallenge.com/cave.jpg b/python/pythonchallenge.com/cave.jpg similarity index 100% rename from languages/python/pythonchallenge.com/cave.jpg rename to python/pythonchallenge.com/cave.jpg diff --git a/languages/python/pythonchallenge.com/channel.zip b/python/pythonchallenge.com/channel.zip similarity index 100% rename from languages/python/pythonchallenge.com/channel.zip rename to python/pythonchallenge.com/channel.zip diff --git a/languages/python/pythonchallenge.com/equality.txt b/python/pythonchallenge.com/equality.txt similarity index 100% rename from languages/python/pythonchallenge.com/equality.txt rename to python/pythonchallenge.com/equality.txt diff --git a/languages/python/pythonchallenge.com/even.jpg b/python/pythonchallenge.com/even.jpg similarity index 100% rename from languages/python/pythonchallenge.com/even.jpg rename to python/pythonchallenge.com/even.jpg diff --git a/languages/python/pythonchallenge.com/evil2.gfx b/python/pythonchallenge.com/evil2.gfx similarity index 100% rename from languages/python/pythonchallenge.com/evil2.gfx rename to python/pythonchallenge.com/evil2.gfx diff --git a/languages/python/pythonchallenge.com/level14.jpg b/python/pythonchallenge.com/level14.jpg similarity index 100% rename from languages/python/pythonchallenge.com/level14.jpg rename to python/pythonchallenge.com/level14.jpg diff --git a/languages/python/pythonchallenge.com/odd.jpg b/python/pythonchallenge.com/odd.jpg similarity index 100% rename from languages/python/pythonchallenge.com/odd.jpg rename to python/pythonchallenge.com/odd.jpg diff --git a/languages/python/pythonchallenge.com/oxygen.png b/python/pythonchallenge.com/oxygen.png similarity index 100% rename from languages/python/pythonchallenge.com/oxygen.png rename to python/pythonchallenge.com/oxygen.png diff --git a/languages/python/pythonchallenge.com/readme.md b/python/pythonchallenge.com/readme.md similarity index 100% rename from languages/python/pythonchallenge.com/readme.md rename to python/pythonchallenge.com/readme.md diff --git a/languages/python/pythonchallenge.com/wire.png b/python/pythonchallenge.com/wire.png similarity index 100% rename from languages/python/pythonchallenge.com/wire.png rename to python/pythonchallenge.com/wire.png diff --git a/readme.md b/readme.md index 2463ce8..22db24e 100644 --- a/readme.md +++ b/readme.md @@ -11,9 +11,8 @@ There is a lot of maths in here, be warned. ### Table of contents -- [Python](languages/python) -- [C++](languages/c++) -- [Project Euler](challenges/euler) -- [r/dailyprogrammer](challenges/daily-programmer) +- [Python](python) +- [C++](c++) - [GCSE Computer Science](school/gcse) +- [A-Level Computer Science](school/a-level) - [Royal Institute Computer Science Masterclass 2021](school/royal%20institute) diff --git a/school/a-level/y12 2022-2024/Dice Probabilities.py b/school/a-level/Y12 2022-2024/Dice Probabilities.py similarity index 100% rename from school/a-level/y12 2022-2024/Dice Probabilities.py rename to school/a-level/Y12 2022-2024/Dice Probabilities.py diff --git a/school/a-level/y12 2022-2024/Floating Point to Denary.py b/school/a-level/Y12 2022-2024/Floating Point to Denary.py similarity index 100% rename from school/a-level/y12 2022-2024/Floating Point to Denary.py rename to school/a-level/Y12 2022-2024/Floating Point to Denary.py diff --git a/school/a-level/y12 2022-2024/Golfed Floating Point to Denary.py b/school/a-level/Y12 2022-2024/Golfed Floating Point to Denary.py similarity index 100% rename from school/a-level/y12 2022-2024/Golfed Floating Point to Denary.py rename to school/a-level/Y12 2022-2024/Golfed Floating Point to Denary.py diff --git a/school/a-level/Y12 2022-2024/Good Practice Moon Calculator.py b/school/a-level/Y12 2022-2024/Good Practice Moon Calculator.py new file mode 100644 index 0000000..b450da9 --- /dev/null +++ b/school/a-level/Y12 2022-2024/Good Practice Moon Calculator.py @@ -0,0 +1,94 @@ +from random import choice +from time import sleep + +# https://www.funkidslive.com/learn/top-10-facts/top-10-facts-about-the-moon/ +MOON_FACTS = [ + 'The moon is the Earth\'s only natural satellite', + 'It takes 27.3 days for the Moon to travel all the way around the Earth', + 'The Moon is a lot smaller than The Sun', + 'The Moon was made when a rock smashed into the Earth', + 'The Moon controls the tides', + 'There is water on the Moon', + 'Earth\'s Moon is the only place beyond Earth where humans have set foot', + 'You can\'t breathe on the Moon', + 'The Moon is getting further away', + 'The Moon ISN\'T made of cheese' +] + +weight = None # measured in kg + +# Determine the user's weight +def updateWeight(): + global weight + + while True: + try: + weight = float(input("Please enter your weight in kilograms: ")) + break + except ValueError: + print("Please make sure you enter a valid number!") + +# Calculate the user's moon weight +def computeMoonWeight(kg): + return kg * 0.165 + +def clearTerminal(): + print('\n' * 20) + +if __name__ == "__main__": + updateWeight() + + # Menu + while True: + clearTerminal() + print("""Welcome to the moon calculator! Please select an option: +1) Find out your moon weight! +2) Find out your moon weight for the next 10 years! +3) Change your weight! +4) Find out a moon fact! +5) Quit the program +""") + + userSelection = None + + # Determine the user's choice + while True: + try: + userSelection = int(input("Choice (1-5): ")) + + if userSelection > 5 or userSelection < 1: + raise ValueError + + break + except ValueError: + print("Please enter the number associated with a valid choice!") + + clearTerminal() + + if userSelection == 1: + moonWeight = computeMoonWeight(weight) + print(f'Your moon weight would be {moonWeight:.2f}kg!') + + elif userSelection == 2: + print('Your moon weight for the next 10 years is as follows:') + + moonWeight = computeMoonWeight(weight) + print(f'Present: {moonWeight:.2f} kg') + + for i in range(1, 11): + moonWeight = computeMoonWeight(weight + i) + print(f'Year {i}: {moonWeight:.2f} kg') + + elif userSelection == 3: + updateWeight() + continue + + elif userSelection == 4: + fact = choice(MOON_FACTS) + print('Fun Fact!') + print(f'{fact}!') + + elif userSelection == 5: + exit() + + sleep(2.5) \ No newline at end of file diff --git a/school/a-level/y12 2022-2024/Homework/07-12-22 - Dictionaries/11.2.5.PNG b/school/a-level/Y12 2022-2024/Homework/07-12-22 - Dictionaries/11.2.5.PNG similarity index 100% rename from school/a-level/y12 2022-2024/Homework/07-12-22 - Dictionaries/11.2.5.PNG rename to school/a-level/Y12 2022-2024/Homework/07-12-22 - Dictionaries/11.2.5.PNG diff --git a/school/a-level/y12 2022-2024/Homework/07-12-22 - Dictionaries/11.2.6.PNG b/school/a-level/Y12 2022-2024/Homework/07-12-22 - Dictionaries/11.2.6.PNG similarity index 100% rename from school/a-level/y12 2022-2024/Homework/07-12-22 - Dictionaries/11.2.6.PNG rename to school/a-level/Y12 2022-2024/Homework/07-12-22 - Dictionaries/11.2.6.PNG diff --git a/school/a-level/y12 2022-2024/Homework/07-12-22 - Dictionaries/11.2.7.PNG b/school/a-level/Y12 2022-2024/Homework/07-12-22 - Dictionaries/11.2.7.PNG similarity index 100% rename from school/a-level/y12 2022-2024/Homework/07-12-22 - Dictionaries/11.2.7.PNG rename to school/a-level/Y12 2022-2024/Homework/07-12-22 - Dictionaries/11.2.7.PNG diff --git a/school/a-level/y12 2022-2024/Homework/07-12-22 - Dictionaries/11.2.8.PNG b/school/a-level/Y12 2022-2024/Homework/07-12-22 - Dictionaries/11.2.8.PNG similarity index 100% rename from school/a-level/y12 2022-2024/Homework/07-12-22 - Dictionaries/11.2.8.PNG rename to school/a-level/Y12 2022-2024/Homework/07-12-22 - Dictionaries/11.2.8.PNG diff --git a/school/a-level/y12 2022-2024/Homework/07-12-22 - Dictionaries/11.2.9.PNG b/school/a-level/Y12 2022-2024/Homework/07-12-22 - Dictionaries/11.2.9.PNG similarity index 100% rename from school/a-level/y12 2022-2024/Homework/07-12-22 - Dictionaries/11.2.9.PNG rename to school/a-level/Y12 2022-2024/Homework/07-12-22 - Dictionaries/11.2.9.PNG diff --git a/school/a-level/y12 2022-2024/Homework/07-12-22 - Dictionaries/11.3.4.PNG b/school/a-level/Y12 2022-2024/Homework/07-12-22 - Dictionaries/11.3.4.PNG similarity index 100% rename from school/a-level/y12 2022-2024/Homework/07-12-22 - Dictionaries/11.3.4.PNG rename to school/a-level/Y12 2022-2024/Homework/07-12-22 - Dictionaries/11.3.4.PNG diff --git a/school/a-level/y12 2022-2024/Homework/07-12-22 - Dictionaries/11.3.5.PNG b/school/a-level/Y12 2022-2024/Homework/07-12-22 - Dictionaries/11.3.5.PNG similarity index 100% rename from school/a-level/y12 2022-2024/Homework/07-12-22 - Dictionaries/11.3.5.PNG rename to school/a-level/Y12 2022-2024/Homework/07-12-22 - Dictionaries/11.3.5.PNG diff --git a/school/a-level/y12 2022-2024/Homework/07-12-22 - Dictionaries/11.4.2.3.PNG b/school/a-level/Y12 2022-2024/Homework/07-12-22 - Dictionaries/11.4.2.3.PNG similarity index 100% rename from school/a-level/y12 2022-2024/Homework/07-12-22 - Dictionaries/11.4.2.3.PNG rename to school/a-level/Y12 2022-2024/Homework/07-12-22 - Dictionaries/11.4.2.3.PNG diff --git a/school/a-level/y12 2022-2024/Homework/07-12-22 - Dictionaries/11.4.2.4.PNG b/school/a-level/Y12 2022-2024/Homework/07-12-22 - Dictionaries/11.4.2.4.PNG similarity index 100% rename from school/a-level/y12 2022-2024/Homework/07-12-22 - Dictionaries/11.4.2.4.PNG rename to school/a-level/Y12 2022-2024/Homework/07-12-22 - Dictionaries/11.4.2.4.PNG diff --git a/school/a-level/y12 2022-2024/Homework/07-12-22 - Dictionaries/11.4.2.5.PNG b/school/a-level/Y12 2022-2024/Homework/07-12-22 - Dictionaries/11.4.2.5.PNG similarity index 100% rename from school/a-level/y12 2022-2024/Homework/07-12-22 - Dictionaries/11.4.2.5.PNG rename to school/a-level/Y12 2022-2024/Homework/07-12-22 - Dictionaries/11.4.2.5.PNG diff --git a/school/a-level/y12 2022-2024/Homework/07-12-22 - Dictionaries/11.4.2.6.PNG b/school/a-level/Y12 2022-2024/Homework/07-12-22 - Dictionaries/11.4.2.6.PNG similarity index 100% rename from school/a-level/y12 2022-2024/Homework/07-12-22 - Dictionaries/11.4.2.6.PNG rename to school/a-level/Y12 2022-2024/Homework/07-12-22 - Dictionaries/11.4.2.6.PNG diff --git a/school/a-level/y12 2022-2024/Homework/07-12-22 - Dictionaries/11.4.2.7.PNG b/school/a-level/Y12 2022-2024/Homework/07-12-22 - Dictionaries/11.4.2.7.PNG similarity index 100% rename from school/a-level/y12 2022-2024/Homework/07-12-22 - Dictionaries/11.4.2.7.PNG rename to school/a-level/Y12 2022-2024/Homework/07-12-22 - Dictionaries/11.4.2.7.PNG diff --git a/school/a-level/y12 2022-2024/Homework/07-12-22 - Dictionaries/11.5.2.PNG b/school/a-level/Y12 2022-2024/Homework/07-12-22 - Dictionaries/11.5.2.PNG similarity index 100% rename from school/a-level/y12 2022-2024/Homework/07-12-22 - Dictionaries/11.5.2.PNG rename to school/a-level/Y12 2022-2024/Homework/07-12-22 - Dictionaries/11.5.2.PNG diff --git a/school/a-level/y12 2022-2024/Homework/07-12-22 - Dictionaries/Letter Frequency.py b/school/a-level/Y12 2022-2024/Homework/07-12-22 - Dictionaries/Letter Frequency.py similarity index 100% rename from school/a-level/y12 2022-2024/Homework/07-12-22 - Dictionaries/Letter Frequency.py rename to school/a-level/Y12 2022-2024/Homework/07-12-22 - Dictionaries/Letter Frequency.py diff --git a/school/a-level/Y12 2022-2024/Homework/11-01-23 - Code and test a program/primeList.py b/school/a-level/Y12 2022-2024/Homework/11-01-23 - Code and test a program/primeList.py new file mode 100644 index 0000000..f6ee1a4 --- /dev/null +++ b/school/a-level/Y12 2022-2024/Homework/11-01-23 - Code and test a program/primeList.py @@ -0,0 +1,84 @@ +from time import sleep + +def clearTerminal(): + print('\n' * 25) + +def findPrimes(upperBound: int): + """ + Implementation of the Sieve of Eratosthenes. + https://en.wikipedia.org/wiki/Sieve_of_Eratosthenes + """ + mask = [True for _ in range(upperBound)] + primes = [] + + mask[0] = False + mask[1] = False + + for i in range(2, upperBound): + if mask[i]: + primes.append(i) + + j = 2 * i + + while j < upperBound: + mask[j] = False + j += i + + return primes + +possiblePrimes = findPrimes(1_000_000) +inputtedPrimes = [] + +def askForPrime(): + global possiblePrimes, inputtedPrimes + + while True: + try: + value = int(input("Please enter a prime number to add to the list: ")) + + if value > 999_999 or value < 0: + raise ValueError('Please ensure you enter an integer at most 6 digits long!') + elif value not in possiblePrimes: + raise ValueError('That is not a prime number! Please try again.') + elif value in inputtedPrimes: + raise ValueError('You have already inputted that prime number! Please enter a different one.') + + return inputtedPrimes.append(value) + except ValueError as e: + if e.args[0].startswith("invalid literal"): + print('Please enter a valid integer!') + else: + print(e) + +if __name__ == "__main__": + while True: + print("""Welcome to the prime checker! +What would you like to do? + +1) Add a number to the list +2) View the list of inputted primes +3) Exit +""") + + while True: + try: + choice = int(input("Please enter your choice: ")) + + if choice not in [1, 2, 3]: + raise ValueError + + break + except ValueError: + print("Please enter a valid integer that is at most six digits long.") + + clearTerminal() + + if choice == 1: + askForPrime() + elif choice == 2: + print(', '.join(map(lambda x: str(x), inputtedPrimes))) + sleep(2.5) + elif choice == 3: + exit() + + clearTerminal() diff --git a/school/a-level/Y12 2022-2024/Logic/Logic Gates intro.pptx b/school/a-level/Y12 2022-2024/Logic/Logic Gates intro.pptx new file mode 100644 index 0000000..b6a8877 Binary files /dev/null and b/school/a-level/Y12 2022-2024/Logic/Logic Gates intro.pptx differ diff --git a/school/a-level/Y12 2022-2024/Logic/Logic Gates.py b/school/a-level/Y12 2022-2024/Logic/Logic Gates.py new file mode 100644 index 0000000..92c343a --- /dev/null +++ b/school/a-level/Y12 2022-2024/Logic/Logic Gates.py @@ -0,0 +1,53 @@ +from operator import not_ + +def getBit(prompt): + while True: + try: + bit = int(input(prompt)) + + if bit not in [0, 1]: + raise ValueError('Please enter either a 1 or a 0') + elif len(str(bit)) != 1: + raise ValueError('Please make sure you only enter one bit') + + return bit + except ValueError as err: + if err.args[0].startswith('invalid'): + print('Please make sure you input a valid integer') + else: + print(err) + +def getGate(): + while True: + try: + gate = input('Please enter a gate to apply: ').upper() + + if gate not in ['AND', 'OR', 'XOR', 'NAND', 'NOR', 'XNOR']: + raise ValueError + + break + except ValueError: + print('Please enter a valid gate. Possible choices: AND, OR, XOR, NAND, NOR, XNOR') + + if gate == 'AND': + return ('^', lambda x, y: x & y) + elif gate == 'OR': + return ('∨', lambda x, y: x | y) + elif gate == 'XOR': + return ('⊕', lambda x, y: (x & not_(y)) | (not_(x) & y)) + elif gate == 'NAND': + return ('↑', lambda x, y: not_(x & y)) + elif gate == 'NOR': + return ('↓', lambda x, y: not_(x | y)) + elif gate == 'XNOR': + return ('⊙', lambda x, y: (x & y) | (not_(x) & not_(y))) + + +A = getBit('Please enter bit A: ') +B = getBit('Please enter bit B: ') +symbol, applyGate = getGate() +Q = applyGate(A, B) + +print(f'''Q = A {symbol} B + = {A} {symbol} {B} + = {Q}''') \ No newline at end of file diff --git a/school/a-level/Y12 2022-2024/Logic/Truth Table.py b/school/a-level/Y12 2022-2024/Logic/Truth Table.py new file mode 100644 index 0000000..1dd9bfc --- /dev/null +++ b/school/a-level/Y12 2022-2024/Logic/Truth Table.py @@ -0,0 +1,91 @@ +from string import ascii_uppercase +from functools import reduce + +def bold(string): + return f' \033[1m{string}\033[0m ' + +def red(string): + return f' \033[91m{string}\033[0m ' + +def NOT(x): + return 0 if x == 1 else 1 + +def AND(x, y): + return x & y + +def OR(x, y): + return x | y + +def XOR(x, y): + return OR(AND(x, NOT(y)), AND(NOT(x), y)) + +def NAND(x, y): + return NOT(AND(x, y)) + +def NOR(x, y): + return NOT(OR(x, y)) + +def XNOR(x, y): + return OR(AND(x, y), NOR(x, y)) + +ALPHABET = list(map(lambda x: bold(x), ascii_uppercase))[0:20] + +def getGate(): + while True: + try: + gate = input('Please enter a gate to apply: ').upper() + + if gate not in ['AND', 'OR', 'XOR', 'NAND', 'NOR', 'XNOR']: + raise ValueError + + break + except ValueError: + print('Please enter a valid gate. Possible choices: AND, OR, XOR, NAND, NOR, XNOR') + + if gate == 'AND': + return '^', lambda *values: reduce(AND, values) + elif gate == 'OR': + return '∨', lambda *values: reduce(OR, values) + elif gate == 'XOR': + return '⊕', lambda *values: reduce(XOR, values) + elif gate == 'NAND': + return '↑', lambda *values: reduce(NAND, values) + elif gate == 'NOR': + return '↓', lambda *values: reduce(NOR, values) + elif gate == 'XNOR': + return '⊙', lambda *values: reduce(XNOR, values) + +def getInputs(): + while True: + try: + # Anything past 20 takes too long to compute the Cartesian product for + amount = int(input('How many inputs would you like (2-20): ')) + + if amount < 2 or amount > 20: + raise ValueError + + break + except ValueError: + print('Please enter a valid integer between 2 and 20 inclusive.') + + formatString = ' {: ^3} |' + (' {: ^3} |' * amount) + ' {: ^3}' + + return amount, formatString + +inputQuantity, formatString = getInputs() +gate, applyGate = getGate() +header = formatString.format(bold('#'), *ALPHABET[0:inputQuantity], bold(gate)) + +print(header) +print('-' * (len(header) - 15 - (8 * inputQuantity))) + +# Find the cartesian product to generate pairs +# https://en.wikipedia.org/wiki/Cartesian_product +sets = [(0, 1)] * inputQuantity +pairs = [[]] + +for set in sets: + pairs = [x+[y] for x in pairs for y in set] + +for i, pair in enumerate(pairs): + print(formatString.format(red(i + 1), *pair, bold(applyGate(*pair)))) \ No newline at end of file diff --git a/school/a-level/Y12 2022-2024/Snakes and Ladders.py b/school/a-level/Y12 2022-2024/Snakes and Ladders.py new file mode 100644 index 0000000..4d53eaa --- /dev/null +++ b/school/a-level/Y12 2022-2024/Snakes and Ladders.py @@ -0,0 +1,113 @@ +from enum import Enum +from random import randint +from math import sqrt +from uuid import uuid1 + +BOARD_SIZE = 8 +TOTAL_SNAKES = 10 +TOTAL_LADDERS = 10 + +MIN_MAGNITUDE = 2 +MAX_MAGNITUDE = 4 + +class TileType(Enum): + Empty = 0 + Snake = 1 + Ladder = 2 + +def rollDice(): + return randint(1, 6) + +def randomCoordinate(startX = 0, startY = 0): + return (randint(startX, BOARD_SIZE - 1), randint(startY, BOARD_SIZE - 1)) + +def generateBoard(playerLocation): + board = [[(TileType.Empty, None, False, uuid1()) for _ in range(BOARD_SIZE)] for _ in range(BOARD_SIZE)] + elements = TOTAL_SNAKES + TOTAL_LADDERS + + playerX, playerY = playerLocation + board[playerY][playerX] = (TileType.Empty, None, True, board[playerY][playerX][3]) + + usedCoords = [ + playerLocation, + (playerX + 1, playerY) + ] + + for i in range(elements): + tileType = TileType.Snake if i<= TOTAL_SNAKES - 1 else TileType.Ladder + generating = True + + while generating: + startX, startY = randomCoordinate() + endX, endY = randomCoordinate() + magnitude = sqrt((startX - endX) ** 2 + (startY - endY) ** 2) + + if ( + (startY != endY) + and (magnitude < MAX_MAGNITUDE) + and (magnitude > MIN_MAGNITUDE) + and ((startX, startY) not in usedCoords) + and ((endX, endY) not in usedCoords) + ): + generating = False + + board[startY][startX] = (tileType, i, board[startY][startX][2], board[startY][startX][3]) + board[endY][endX] = (tileType, i, board[startY][startX][2], board[endY][endX][3]) + + usedCoords.append((startX, startY)) + usedCoords.append((endX, endY)) + + return board + +def renderBoard(board): + for row in board: + for type, _, player, _ in row: + colString = 'S' if type == TileType.Snake else 'L' if type == TileType.Ladder else 'P' if player else '-' + + print(colString, end=' ') + print() + +def movePlayer(board, playerLocation): + x, y = playerLocation + newX = x + newY = y + + # Curl around the board + if y % 2 == 0: + if newX == 0: + newY -= 1 + else: + newX -= 1 + else: + if newX == BOARD_SIZE - 1: + newY -= 1 + else: + newX += 1 + + cell = board[newY][newX] + # Check for intersections with snakes or ladders + if cell[0] == TileType.Snake: + for i, row in enumerate(board): + for col in row: + if col[0] == TileType.Snake and col[1] == cell[1] and col[3] != cell[3]: + print(col) + if i < newY: + newY = i + + board[y][x] = (board[y][x][0], board[y][x][1], False, board[y][x][3]) + board[newY][newX] = (board[newY][newX][0], board[newY][newX][1], True, board[newY][newX][3]) + + return (board, (newX, newY)) + +playerLocation = (BOARD_SIZE - 1, BOARD_SIZE - 1) + +board = generateBoard(playerLocation) +renderBoard(board) +print() + +board, playerLocation = movePlayer(board, playerLocation) +renderBoard(board) +print() + +board, playerLocation = movePlayer(board, playerLocation) +renderBoard(board) \ No newline at end of file diff --git a/school/a-level/Y13 2021-2023/Cash Register Problem.py b/school/a-level/Y13 2021-2023/Cash Register Problem.py new file mode 100644 index 0000000..24e7e1a --- /dev/null +++ b/school/a-level/Y13 2021-2023/Cash Register Problem.py @@ -0,0 +1,47 @@ +class CashRegister: + __coins = { + 50: 0, + 20: 0, + 10: 0, + 5: 1, + 2: 0, + 1: 5, + 0.5: 2, + 0.2: 10, + 0.1: 10, + 0.05: 10, + 0.02: 5, + 0.01: 2 + } + + def checkout(self, cost, payment): + totalPayment = 0 + + # Add the money to the cash register and compute total payment + for coinType in payment: + self.__coins[coinType] += payment[coinType] + totalPayment += payment[coinType] * coinType + + changeValue = totalPayment - cost + change = {} + + for coinType in self.__coins: + # Set an initial value for the change + if changeValue - coinType > 0: + change[coinType] = 0 + + # Keep attempting to provide change from the tray until we overpay + while changeValue - coinType > 0: + changeValue -= coinType + self.__coins[coinType] -= 1 + change[coinType] += 1 + + return change + +register = CashRegister() + +print( + register.checkout(5.99, { + 10: 1 + }) +) \ No newline at end of file diff --git a/school/a-level/Y13 2021-2023/Homework/OOP 2 - Shopping Basket/Fried Egg Diagram.png b/school/a-level/Y13 2021-2023/Homework/OOP 2 - Shopping Basket/Fried Egg Diagram.png new file mode 100644 index 0000000..bdd5113 Binary files /dev/null and b/school/a-level/Y13 2021-2023/Homework/OOP 2 - Shopping Basket/Fried Egg Diagram.png differ diff --git a/school/a-level/y13 2021-2023/Homework/OOP 2 - Shopping Basket/Item.py b/school/a-level/Y13 2021-2023/Homework/OOP 2 - Shopping Basket/Item.py similarity index 100% rename from school/a-level/y13 2021-2023/Homework/OOP 2 - Shopping Basket/Item.py rename to school/a-level/Y13 2021-2023/Homework/OOP 2 - Shopping Basket/Item.py diff --git a/school/a-level/y13 2021-2023/Homework/OOP 2 - Shopping Basket/ShoppingBasket.py b/school/a-level/Y13 2021-2023/Homework/OOP 2 - Shopping Basket/ShoppingBasket.py similarity index 100% rename from school/a-level/y13 2021-2023/Homework/OOP 2 - Shopping Basket/ShoppingBasket.py rename to school/a-level/Y13 2021-2023/Homework/OOP 2 - Shopping Basket/ShoppingBasket.py diff --git a/school/a-level/y13 2021-2023/Homework/OOP 2 - Shopping Basket/main.py b/school/a-level/Y13 2021-2023/Homework/OOP 2 - Shopping Basket/main.py similarity index 100% rename from school/a-level/y13 2021-2023/Homework/OOP 2 - Shopping Basket/main.py rename to school/a-level/Y13 2021-2023/Homework/OOP 2 - Shopping Basket/main.py diff --git a/school/a-level/Y13 2021-2023/LMC/LMC Higher or Lower.txt b/school/a-level/Y13 2021-2023/LMC/LMC Higher or Lower.txt new file mode 100644 index 0000000..739c2d3 --- /dev/null +++ b/school/a-level/Y13 2021-2023/LMC/LMC Higher or Lower.txt @@ -0,0 +1,30 @@ + INP + STA toGuess + +loop INP + STA guess + + LDA toGuess + SUB guess + + BRZ equal + BRP small + BRA big + +small LDA higher + OUT + BRA loop + +big LDA lower + OUT + BRA loop + +equal LDA win + OUT + HLT + +toGuess DAT +guess DAT +higher DAT 1 +lower DAT 0 +win DAT 9 \ No newline at end of file diff --git a/school/a-level/Y13 2021-2023/LMC/LMC Triangular numbers.txt b/school/a-level/Y13 2021-2023/LMC/LMC Triangular numbers.txt new file mode 100644 index 0000000..5654c3c --- /dev/null +++ b/school/a-level/Y13 2021-2023/LMC/LMC Triangular numbers.txt @@ -0,0 +1,22 @@ + INP + STA quant + +loop LDA number + ADD counter + OUT + STA number + + LDA counter + ADD one + STA counter + + LDA quant + SUB counter + + BRP loop + HLT + +quant DAT +counter DAT 1 +number DAT 0 +one DAT 1 \ No newline at end of file diff --git a/school/a-level/y13 2021-2023/OOP/Bank Account Controller UML.graphml b/school/a-level/Y13 2021-2023/OOP/Bank Account Controller UML.graphml similarity index 100% rename from school/a-level/y13 2021-2023/OOP/Bank Account Controller UML.graphml rename to school/a-level/Y13 2021-2023/OOP/Bank Account Controller UML.graphml diff --git a/school/a-level/y13 2021-2023/OOP/Bank Account Controller UML.png b/school/a-level/Y13 2021-2023/OOP/Bank Account Controller UML.png similarity index 100% rename from school/a-level/y13 2021-2023/OOP/Bank Account Controller UML.png rename to school/a-level/Y13 2021-2023/OOP/Bank Account Controller UML.png diff --git a/school/a-level/Y13 2021-2023/OOP/Bank Account Controller with Inheritance.py b/school/a-level/Y13 2021-2023/OOP/Bank Account Controller with Inheritance.py new file mode 100644 index 0000000..242eb61 --- /dev/null +++ b/school/a-level/Y13 2021-2023/OOP/Bank Account Controller with Inheritance.py @@ -0,0 +1,152 @@ +from enum import Enum +from abc import ABC + +CONFIRMATION_VALIDATOR = lambda x: x.lower() not in ['yes', 'y', 'no', 'n'] + +class AccountTypes(Enum): + Current = 1 + Savings = 2 + +class Account(ABC): + def __init__(self): + self.__balance = 0 + + def getBalance(self): + return self.__balance + + def setBalance(self, newBalance): + self.__balance = newBalance + +class CurrentAccount(Account): + pass + +class SavingsAccount(Account): + INTEREST_RATE = 0.02 + + def __init__(self): + super().__init__() + + def calculateInterest(self): + return self.getBalance() * SavingsAccount.INTEREST_RATE + + def setBalance(self, newBalance): + if newBalance < 0: + raise ValueError('You can not have a negative balance!') + + return super().setBalance(newBalance) + +class Controller: + OVERDRAWN_FEE = 5 + + def __init__(self, account): + self.__account = account + + def __overdrawnFee(self): + balance = self.fetchBalance() + + if balance < 0: + self.__account.setBalance(balance - Controller.OVERDRAWN_FEE) + + return balance < 0 + + def fetchBalance(self): + return self.__account.getBalance() + + def formatBalance(self): + balance = self.fetchBalance() + sign = '' if balance >= 0 else '-' + return f'{sign}£{abs(balance):.2f}' + + def payIn(self, amount): + self.__account.setBalance(self.fetchBalance() + amount) + + def withdraw(self, amount): + fee = self.__overdrawnFee() + self.__account.setBalance(self.fetchBalance() - amount) + return fee + + def accountType(self): + if isinstance(self.__account, CurrentAccount): + return AccountTypes.Current + elif isinstance(self.__account, SavingsAccount): + return AccountTypes.Savings + + def addInterest(self): + if isinstance(self.__account, SavingsAccount): + interest = self.__account.calculateInterest() + self.__account.setBalance(self.fetchBalance() + interest) + return interest + else: + return 0 + +def fetchValue(caster, typeName, prompt, validator = None, validatorFailMessage = None): + while True: + try: + value = caster(input(prompt)) + + if validator: + if validator(value): + raise ValueError('validator') + + return value + except ValueError as e: + if str(e) == 'validator' and validatorFailMessage: + print(validatorFailMessage) + else: + print(f'Please make sure you input a valid {typeName}.') + +def displayBalance(): + print(f'You currently have a balance of {controller.formatBalance()}!') + +def menu(): + print(f"""Welcome to the bank! What would you like to do? + +1) View your current balance +2) Pay in money +3) Withdraw money""" + (""" +4) Add interest""" if controller.accountType() == AccountTypes.Savings else "")) + + choice = fetchValue(int, 'integer', 'Please make your selection: ', lambda x: (x > 5 or x <= 0)) + + if choice == 1: + displayBalance() + elif choice == 2: + value = fetchValue(float, 'float', 'Please enter the amount of money you would like to pay in: ') + controller.payIn(value) + displayBalance() + elif choice == 3: + value = fetchValue(float, 'float', 'Please enter the amount of money you would like to withdraw: ') + chargedFee = controller.withdraw(value) + + if chargedFee: + print(f'You are currently overdrawn! If you go through with this transaction, you will have to pay a fee of £{Controller.OVERDRAWN_FEE:.2f}, and your balance will become {controller.formatBalance()}.') + confirm = fetchValue(str, 'input', 'Would you like to proceed? (y/n)', CONFIRMATION_VALIDATOR) + + if confirm in ['n', 'no']: + controller.payIn(value + Controller.OVERDRAWN_FEE) + print('Your transaction has been cancelled!') + else: + displayBalance() + else: + displayBalance() + elif accountType == AccountTypes.Savings and choice == 4: + interest = controller.addInterest() + print(f'Added £{interest:.2f} worth of interest!') + displayBalance() + + +if __name__ == '__main__': + print("""Please choose an account type: +1) Current Account +2) Savings Account""") + accountType = AccountTypes.Savings if fetchValue(int, 'account type', 'Please select an account type (1-2): ', lambda x: (x < 1 or x > 2)) == 2 else AccountTypes.Current + account = CurrentAccount() if accountType == AccountTypes.Current else SavingsAccount() + controller = Controller(account) + + while True: + menu() + + again = fetchValue(str, 'input', 'Would you like to go again? (y/n)', CONFIRMATION_VALIDATOR) + + if again in ['n', 'no']: + break \ No newline at end of file diff --git a/school/a-level/y13 2021-2023/OOP/Bank Account Controller.py b/school/a-level/Y13 2021-2023/OOP/Bank Account Controller.py similarity index 100% rename from school/a-level/y13 2021-2023/OOP/Bank Account Controller.py rename to school/a-level/Y13 2021-2023/OOP/Bank Account Controller.py diff --git a/school/a-level/Y13 2021-2023/OOP/Breakout/Comfortaa-Bold.ttf b/school/a-level/Y13 2021-2023/OOP/Breakout/Comfortaa-Bold.ttf new file mode 100644 index 0000000..28ca423 Binary files /dev/null and b/school/a-level/Y13 2021-2023/OOP/Breakout/Comfortaa-Bold.ttf differ diff --git a/school/a-level/Y13 2021-2023/OOP/Breakout/ball.py b/school/a-level/Y13 2021-2023/OOP/Breakout/ball.py new file mode 100644 index 0000000..62d45b1 --- /dev/null +++ b/school/a-level/Y13 2021-2023/OOP/Breakout/ball.py @@ -0,0 +1,20 @@ +from random import randint +from element import Element + +BLACK = (0, 0, 0) + +class Ball(Element): + def __init__(self, width, height, startPosition, colour): + super().__init__(width, height, startPosition, colour) + self.reset() + + def update(self): + self.rect.x += self.velocity[0] + self.rect.y += self.velocity[1] + + def bounce(self): + self.velocity = [ randint(-6, 6), -self.velocity[1]] + + def reset(self): + Element.reset(self) + self.velocity = [randint(4, 6), randint(-6, 6)] \ No newline at end of file diff --git a/school/a-level/Y13 2021-2023/OOP/Breakout/border.py b/school/a-level/Y13 2021-2023/OOP/Breakout/border.py new file mode 100644 index 0000000..a560836 --- /dev/null +++ b/school/a-level/Y13 2021-2023/OOP/Breakout/border.py @@ -0,0 +1,6 @@ +from element import Element +from pygame import Color + +class Border(Element): + def __init__(self, width, height, startPosition, colour): + super().__init__(width, height, startPosition, colour, False) \ No newline at end of file diff --git a/school/a-level/Y13 2021-2023/OOP/Breakout/brick.py b/school/a-level/Y13 2021-2023/OOP/Breakout/brick.py new file mode 100644 index 0000000..64e6097 --- /dev/null +++ b/school/a-level/Y13 2021-2023/OOP/Breakout/brick.py @@ -0,0 +1,8 @@ +import pygame +from element import Element + +BLACK = (0, 0, 0) + +class Brick(Element): + def __init__(self, width, height, startPosition, colour): + super().__init__(width, height, startPosition, colour) \ No newline at end of file diff --git a/school/a-level/Y13 2021-2023/OOP/Breakout/element.py b/school/a-level/Y13 2021-2023/OOP/Breakout/element.py new file mode 100644 index 0000000..cb6a83d --- /dev/null +++ b/school/a-level/Y13 2021-2023/OOP/Breakout/element.py @@ -0,0 +1,23 @@ +from pygame.sprite import Sprite +from pygame.draw import rect as drawRect +from pygame import Surface + +BLACK = (0, 0, 0) + +class Element(Sprite): + def __init__(self, width, height, startPosition, colour, fill = True): + super().__init__() + + self.image = Surface([width, height]) + self.image.fill(BLACK) + self.image.set_colorkey(BLACK) + + drawRect(self.image, colour, [0, 0, width, height], 0 if fill else 2) + self.rect = self.image.get_rect() + + self.__startPosition = startPosition + self.reset() + + def reset(self): + self.rect.x = self.__startPosition[0] + self.rect.y = self.__startPosition[1] \ No newline at end of file diff --git a/school/a-level/Y13 2021-2023/OOP/Breakout/main.py b/school/a-level/Y13 2021-2023/OOP/Breakout/main.py new file mode 100644 index 0000000..ed68520 --- /dev/null +++ b/school/a-level/Y13 2021-2023/OOP/Breakout/main.py @@ -0,0 +1,116 @@ +import pygame +from pathlib import Path +from paddle import Paddle +from ball import Ball +from brick import Brick +from border import Border + +# Colours +WHITE = (255,255,255) +DARKBLUE = (36,90,190) +LIGHTBLUE = (0,176,240) +RED = (255,0,0) +ORANGE = (255,100,0) +YELLOW = (255,255,0) + +MOVEMENT_UNIT = 5 +BRICK_WIDTH = 50 + +pygame.init() + +# Prepare the display and set up the clock +dimensions = (800, 600) +screen = pygame.display.set_mode(dimensions) +clock = pygame.time.Clock() +font = pygame.font.Font(str(Path(__file__).parent / 'Comfortaa-Bold.ttf'), 20) + +pygame.display.set_caption('Breakout!') + +# Game variables +playing = True +score = 0 +lives = 3 + +# Sprites +spriteList = pygame.sprite.Group() + +paddle = Paddle(100, 10, (350, 560), LIGHTBLUE, dimensions[0]) +ball = Ball(10, 10, (150, 150), WHITE) +border = Border(dimensions[0], dimensions[1], (0, 0), DARKBLUE) + +spriteList.add(paddle) +spriteList.add(ball) + +# Bricks +bricks = pygame.sprite.Group() + +for i in range(0, (dimensions[0] // BRICK_WIDTH)): + brick = Brick(BRICK_WIDTH, 20, ((2 * i + 1) * BRICK_WIDTH, 100), WHITE) + bricks.add(brick) + +# Main loop +while playing: + # Handle events + for event in pygame.event.get(): + if event.type == pygame.QUIT: + playing = False + elif event.type == pygame.KEYDOWN: + if event.key == pygame.K_ESCAPE: + playing = False + + # Handle keypresses + keys = pygame.key.get_pressed() + + if keys[pygame.K_LEFT]: + paddle.moveLeft(MOVEMENT_UNIT) + if keys[pygame.K_RIGHT]: + paddle.moveRight(MOVEMENT_UNIT) + + # Game logic + spriteList.update() + bricks.update() + + if ball.rect.x >= (dimensions[0] - 10): + ball.velocity[0] = -ball.velocity[0] + elif ball.rect.x <= 0: + ball.velocity[0] = -ball.velocity[0] + + if ball.rect.y >= (dimensions[1] - 10): + ball.velocity[1] = -ball.velocity[1] + elif ball.rect.y <= 40: + ball.velocity[1] = -ball.velocity[1] + + if pygame.sprite.collide_mask(ball, border) and ball.rect.y > paddle.rect.y and ball.rect.x < (dimensions[0] - 10) and ball.rect.x > 0: + lives -= 1 + # todo: reset ball + + if pygame.sprite.collide_mask(ball, paddle): + ball.rect.bottom = ball.rect.top + ball.bounce() + + collidedBrick = pygame.sprite.spritecollideany(ball, bricks) + + if collidedBrick: + collidedBrick.kill() + ball.velocity[1] = -ball.velocity[1] + score += 1 + + # Rendering + screen.fill(DARKBLUE) + pygame.draw.line(screen, WHITE, [0, 38], [800, 38], 2) + + text = font.render("Score: " + str(score), 1, WHITE) + screen.blit(text, (20,10)) + + text = font.render("Lives: " + str(lives), 1, WHITE) + screen.blit(text, (650,10)) + + text = font.render(f'FPS: {clock.get_fps():.0f}' , 1, WHITE) + screen.blit(text, (dimensions[0] - text.get_width() - 20, dimensions[1] - text.get_height() - 10)) + + spriteList.draw(screen) + bricks.draw(screen) + + # Update the screen and cap the FPS at 60 (todo: make refresh rate) + pygame.display.flip() + clock.tick(60) \ No newline at end of file diff --git a/school/a-level/Y13 2021-2023/OOP/Breakout/paddle.py b/school/a-level/Y13 2021-2023/OOP/Breakout/paddle.py new file mode 100644 index 0000000..890064d --- /dev/null +++ b/school/a-level/Y13 2021-2023/OOP/Breakout/paddle.py @@ -0,0 +1,20 @@ +from element import Element + +BLACK = (0, 0, 0) + +class Paddle(Element): + def __init__(self, width, height, startPosition, colour, screenWidth): + super().__init__(width, height, startPosition, colour) + self.__screenWidth = screenWidth - width + + def moveLeft(self, px): + self.rect.x -= px + + if self.rect.x < 0: + self.rect.x = 0 + + def moveRight(self, px): + self.rect.x += px + + if self.rect.x > self.__screenWidth: + self.rect.x = self.__screenWidth \ No newline at end of file diff --git a/school/a-level/y13 2021-2023/OOP/Pest.py b/school/a-level/Y13 2021-2023/OOP/Pest.py similarity index 100% rename from school/a-level/y13 2021-2023/OOP/Pest.py rename to school/a-level/Y13 2021-2023/OOP/Pest.py diff --git a/school/a-level/Y13 2021-2023/OOP/Pizza!!!.py b/school/a-level/Y13 2021-2023/OOP/Pizza!!!.py new file mode 100644 index 0000000..e6ecd23 --- /dev/null +++ b/school/a-level/Y13 2021-2023/OOP/Pizza!!!.py @@ -0,0 +1,53 @@ +from dataclasses import dataclass, field +from enum import Enum +from typing import List + +toppings = { + 'special cheese': 0.75, + 'bacon': 1.25, + 'chicken': 1.99, + 'spicy beef': 1.25, + 'pepperoni': 1.25, + 'pineapple': 0.00, + 'cream egg': 0.99, + 'chillies': 0.50, + + 'smelly cheese': 0.99, + 'organic meat': 2.99, + 'doner meat': 3.45, + 'olives': 1.99, + + 'ham': 2.00 +} + +class Crust(Enum): + Normal = 0 + Thin = 1 + +@dataclass +class Pizza: + __slices: int + __crust: Crust + __toppings: List[str] = field(default_factory=list) + + def calculatePrice(self): + # 1 slice for £1 + cost = self.__slices + pizzaToppings = list(map(lambda x: x.lower(), self.__toppings)) + + # Add the price of the toppings + for topping in toppings.keys(): + if topping in pizzaToppings: + cost += toppings[topping] + + return cost + + def updateSlices(self, newSlices: int): + self.slice = newSlices + + return self + +margherita = Pizza(10, Crust.Thin, ['tomato sauce', 'basic cheese']) +hawaiian = Pizza(17, Crust.Thin, ['tomato sauce', 'smelly cheese', 'pineapple', 'ham']) + +print(margherita.calculatePrice(), hawaiian.calculatePrice()) diff --git a/school/a-level/Y13 2021-2023/OOP/Pontoon.py b/school/a-level/Y13 2021-2023/OOP/Pontoon.py new file mode 100644 index 0000000..33fa405 --- /dev/null +++ b/school/a-level/Y13 2021-2023/OOP/Pontoon.py @@ -0,0 +1,96 @@ +from enum import Enum +from random import randint + +# Enums +class Suit(Enum): + Heart = 'Hearts' + Club = 'Clubs' + Diamond = 'Diamonds' + Spade = 'Spades' + +class CardTypes(Enum): + One = 1 + Two = 2 + Three = 3 + Four = 4 + Five = 5 + Six = 6 + Seven = 7 + Eight = 8 + Nine = 9 + Ten = 10 + King = 10 + Queen = 10 + Jack = 10 + Ace = 11 # set this to none once ace picking logic is done (:, just allows totalValue to work + +class DrawCardResults(Enum): + Success = 0 + Fail = 1 + Ace = 2 + +# Classes +class Card: + def __init__(self, cardType: CardTypes, suit: Suit): + self.__suit = suit.value + self.__type = cardType.name + self.__value = cardType.value + + def __str__(self): + return f'{self.__type} of {self.__suit}' + + def getValue(self): + return self.__value + + def setValue(self, newValue: int): + if self.__value == None: + self.__value = newValue + +class Deck: + def __init__(self): + self.__remainingCards = 52 + + def drawCard(self): + if self.__remainingCards == 0: return (None, None) + + card = CardTypes._member_map_[CardTypes._member_names_[randint(0, len(CardTypes._member_names_) - 1)]] + suit = Suit._member_map_[Suit._member_names_[randint(0, len(Suit._member_names_)) - 1]] + self.__remainingCards -= 1 + + return (card, suit) + +class Hand: + def __init__(self, deck: Deck): + self.cards = [] + self.__deck = deck + + def drawCard(self): + card, suit = self.__deck.drawCard() + self.cards.append(Card(card, suit)) + + return DrawCardResults.Success if card != None else DrawCardResults.Ace if card == CardTypes.Ace else DrawCardResults.Fail + + def totalValue(self): + total = 0 + + for card in self.cards: + total += card.getValue() + + return total + +class Player: + count = 0 + + def __init__(self, deck: Deck, name: str = ''): + Player.count += 1 + + self.name = name if len(name) > 0 else f'Player {Player.count}' + self.__hand = Hand(deck) + + def __str__(self): + return self.__name + +# Game +deck = Deck() +player = Player(deck) +player2 = Player(deck) \ No newline at end of file diff --git a/school/a-level/Y13 2021-2023/Operating Systems/Operating Systems.doc b/school/a-level/Y13 2021-2023/Operating Systems/Operating Systems.doc new file mode 100644 index 0000000..bb27462 Binary files /dev/null and b/school/a-level/Y13 2021-2023/Operating Systems/Operating Systems.doc differ diff --git a/school/a-level/Y13 2021-2023/Operating Systems/Operating Systems.md b/school/a-level/Y13 2021-2023/Operating Systems/Operating Systems.md new file mode 100644 index 0000000..d4cfa86 --- /dev/null +++ b/school/a-level/Y13 2021-2023/Operating Systems/Operating Systems.md @@ -0,0 +1,41 @@ +# Operating Systems + +## The Kernel + +The kernel is the central module of an OS. It is the part of the operating system that loads first, and it remains in memory - usually in a protected area. Typically, it is responsible for management of the CPU and memory. + +The kernel connects the system hardware to the application software. The Linux kernel is used in numerous operating systems including Android, Ubuntu, and firmware for devices such as routers. + +## Types of Operating Systems + +### Single User - Single Application + +Only has to deal with one person running one application at a time. For example, a Nokia brick. + +### Single User - Multi-application + +Only has to deal with one person, but must be able to handle running multiple applications concurrently. For example, Android tablets. + +### Multi-user - Multi-tasking + +Must be able to handle multiple users running multiple applications concurrently. For example, Windows as you can stay logged in as many different users who have different states on the computer simultaneously. + +### Real-Time + +Real-Time operating systems must process tasks in a set time which is critical to it's operation. These are not needed in computers, but may be needed in something like a car which has to react incredibly quickly to prevent accidents. + +### Batch-Op + +A batch is a small job repeated many times. For each iteration, a small change is made to the data; for example, printing gas bills/bank statements. They are designed to be left running with little user interactions. + +## Process Manager + +The process manager is a part of the kernel. Jobs can consist of many processes (one-to-many). This is the job of the process scheduler. + +### Process States + +- HOLD +- READY +- RUNNING +- WAIT +- FINISHED/FAIL diff --git a/school/a-level/Y13 2021-2023/Term 3 Revision Guide.pptx b/school/a-level/Y13 2021-2023/Term 3 Revision Guide.pptx new file mode 100644 index 0000000..40aebfc Binary files /dev/null and b/school/a-level/Y13 2021-2023/Term 3 Revision Guide.pptx differ diff --git a/school/a-level/y12 old school/fundementals/einstein.py b/school/a-level/y12 old school/fundementals/einstein.py deleted file mode 100644 index 2423dad..0000000 --- a/school/a-level/y12 old school/fundementals/einstein.py +++ /dev/null @@ -1,11 +0,0 @@ -c = 299792458 - -while True: - try: - m = int(input('Please enter an integer mass in kg: ')) - break - except ValueError: - print('Please ensure that your input was an integer!') - -e = m * (c ** 2) -print(f'e = {e:,}J') diff --git a/school/a-level/y12 old school/fundementals/indoor voice.py b/school/a-level/y12 old school/fundementals/indoor voice.py deleted file mode 100644 index b1b4fb5..0000000 --- a/school/a-level/y12 old school/fundementals/indoor voice.py +++ /dev/null @@ -1,3 +0,0 @@ -text = input('Please enter some text: ') -text = text.lower() -print(text) diff --git a/school/a-level/y12 old school/fundementals/making faces.py b/school/a-level/y12 old school/fundementals/making faces.py deleted file mode 100644 index 49738bf..0000000 --- a/school/a-level/y12 old school/fundementals/making faces.py +++ /dev/null @@ -1,11 +0,0 @@ -mapping = { - ':)': '🙂', - ':(': '🙁' -} - -text = input('Please enter some text: ') - -for emoticon in mapping.keys(): - text = text.replace(emoticon, mapping[emoticon]) - -print(text) diff --git a/school/a-level/y12 old school/fundementals/playback speed.py b/school/a-level/y12 old school/fundementals/playback speed.py deleted file mode 100644 index c36fa9a..0000000 --- a/school/a-level/y12 old school/fundementals/playback speed.py +++ /dev/null @@ -1,3 +0,0 @@ -text = input('Please enter some text: ') -text = text.replace(' ', '...') -print(text) diff --git a/school/a-level/y12 old school/fundementals/tip calculator.py b/school/a-level/y12 old school/fundementals/tip calculator.py deleted file mode 100644 index 7b5bac8..0000000 --- a/school/a-level/y12 old school/fundementals/tip calculator.py +++ /dev/null @@ -1,25 +0,0 @@ -while True: - try: - pounds = input('How much was the meal? ') - - pounds = pounds.split('£') - pounds = pounds[len(pounds) - 1] - pounds = float(pounds) - - break - except ValueError: - print('Please ensure that you input a valid amount of money!') - -while True: - try: - percentage = input('What percentage would you like to tip? ') - - percentage = percentage.split('%')[0] - percentage = float(percentage) / 100 - - break - except ValueError: - print('Please ensure that you enter a valid percentage!') - -tip = round(pounds * percentage, 2) -print(f'You should tip £{tip}!')