refactor: the reckoning
|
@ -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))
|
|
@ -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)
|
|
@ -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)
|
|
@ -1,16 +0,0 @@
|
|||
<div align="center">
|
||||
<img height="256" src="../../assets/daily-programmer.gif" alt="">
|
||||
<h1>r/dailyprogrammer</h1>
|
||||
</div>
|
||||
|
||||
[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/)
|
|
@ -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))
|
1
challenges/euler/.gitignore
vendored
|
@ -1 +0,0 @@
|
|||
build
|
|
@ -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'
|
||||
]
|
||||
};
|
|
@ -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"
|
||||
}
|
||||
}
|
|
@ -1,114 +0,0 @@
|
|||
<div align="center">
|
||||
<img src="../assets/euler.png">
|
||||
<h1>euler</h1>
|
||||
</div>
|
||||
|
||||
> 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
|
|
@ -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\
|
|
@ -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`),
|
||||
`<div align="center">
|
||||
|
||||
### ${problems[problemNumber - 1]}
|
||||
</div>`
|
||||
);
|
||||
|
||||
// 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!'
|
||||
)
|
||||
)
|
||||
)
|
||||
);
|
||||
});
|
|
@ -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.')
|
||||
)
|
||||
);
|
||||
}
|
|
@ -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<number> = 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);
|
|
@ -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));
|
|
@ -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);
|
|
@ -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));
|
|
@ -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);
|
|
@ -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));
|
|
@ -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));
|
|
@ -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));
|
|
@ -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);
|
|
@ -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);
|
|
@ -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);
|
|
@ -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);
|
|
@ -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);
|
|
@ -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));
|
|
@ -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));
|
|
@ -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);
|
|
@ -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 = <T>(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));
|
|
@ -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<bigint, bigint, bigint> {
|
||||
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<bigint, bigint, bigint>, 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);
|
|
@ -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}.`
|
||||
);
|
|
@ -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));
|
|
@ -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));
|
|
@ -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);
|
|
@ -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));
|
|
@ -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!`);
|
|
@ -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));
|
|
@ -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));
|
|
@ -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));
|
|
@ -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);
|
|
@ -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));
|
|
@ -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));
|
|
@ -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);
|
|
@ -1,23 +0,0 @@
|
|||
<div align="center">
|
||||
|
||||
### 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.
|
||||
```
|
||||
|
||||
</div>
|
|
@ -1,17 +0,0 @@
|
|||
<div align="center">
|
||||
|
||||
### 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.
|
||||
|
||||
<br><br>
|
||||
|
||||
<img src="https://latex.codecogs.com/svg.image?{m&space;+&space;n&space;\choose&space;m}&space;=&space;{m&space;+&space;n&space;\choose&space;n}&space;=&space;\frac{(m+n)!}{m!n!}" height="100">
|
||||
|
||||
#### LaTeX
|
||||
|
||||
```
|
||||
{m + n \choose m} = {m + n \choose n} = \frac{(m+n)!}{m!n!}
|
||||
```
|
||||
|
||||
</div>
|
|
@ -1,24 +0,0 @@
|
|||
<div align="center">
|
||||
|
||||
### Proof
|
||||
|
||||
> let x be the sum
|
||||
|
||||
<img src="https://latex.codecogs.com/svg.image?c&space;=&space;x&space;-&space;(a&space;+&space;b)&space;\\a^2&space;+&space;b^2&space;=&space;(x&space;-&space;(a&space;+&space;b))^2&space;\\a^2&space;+&space;b^2&space;=&space;a^2&space;+&space;2ab&space;-&space;2ax&space;+&space;b^2&space;-&space;2bx&space;+&space;x^2&space;\\2ab&space;-&space;2ax&space;-&space;2bx&space;+&space;x^2&space;=&space;0&space;\\\\2bx&space;-&space;2ab&space;=&space;x^2&space;-&space;2ax&space;\\(\frac{x^2}{x})&space;-&space;2a&space;=&space;2b&space;-&space;(\frac{2ab}{x})&space;\\-2a&space;=&space;2b&space;-&space;(\frac{2ab}{x})&space;-&space;(\frac{x^2}{x})&space;\\\\a&space;=&space;\frac{2bx&space;-&space;x^2}{2x&space;-&space;2b}" width="500">
|
||||
|
||||
### 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}
|
||||
```
|
||||
|
||||
</div>
|
|
@ -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"
|
||||
}
|
||||
}
|
|
@ -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
|
|
|
@ -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"
|
|
|
@ -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
|
|
|
@ -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
|
|
|
@ -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
|
|
|
@ -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
|
|
|
@ -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
|
|
|
@ -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
|
|
|
@ -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
|
|
|
@ -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
|
|
Before Width: | Height: | Size: 29 KiB After Width: | Height: | Size: 29 KiB |
Before Width: | Height: | Size: 28 KiB After Width: | Height: | Size: 28 KiB |
Before Width: | Height: | Size: 42 KiB After Width: | Height: | Size: 42 KiB |
Before Width: | Height: | Size: 27 KiB After Width: | Height: | Size: 27 KiB |
Before Width: | Height: | Size: 41 KiB After Width: | Height: | Size: 41 KiB |
Before Width: | Height: | Size: 39 KiB After Width: | Height: | Size: 39 KiB |
Before Width: | Height: | Size: 25 KiB After Width: | Height: | Size: 25 KiB |
Before Width: | Height: | Size: 25 KiB After Width: | Height: | Size: 25 KiB |