save progress
This commit is contained in:
parent
5da06d3330
commit
6446c86686
11
1/main.py
Normal file
11
1/main.py
Normal file
@ -0,0 +1,11 @@
|
|||||||
|
|
||||||
|
|
||||||
|
threes = []
|
||||||
|
fives = []
|
||||||
|
|
||||||
|
for i in range(1000):
|
||||||
|
if i % 3 == 0:
|
||||||
|
threes.append(i)
|
||||||
|
elif i % 5 == 0:
|
||||||
|
fives.append(i)
|
||||||
|
print(sum(threes) + sum(fives))
|
34
10/main.go
Normal file
34
10/main.go
Normal file
@ -0,0 +1,34 @@
|
|||||||
|
package main
|
||||||
|
|
||||||
|
import "fmt"
|
||||||
|
|
||||||
|
func main() {
|
||||||
|
primes := []int{2, 3}
|
||||||
|
|
||||||
|
for i := 3; i < 2_050_000; i++ {
|
||||||
|
primeFlag := false
|
||||||
|
for _, j := range primes {
|
||||||
|
if i%j == 0 {
|
||||||
|
primeFlag = true
|
||||||
|
break
|
||||||
|
}
|
||||||
|
}
|
||||||
|
if !primeFlag {
|
||||||
|
primes = append(primes, i)
|
||||||
|
}
|
||||||
|
}
|
||||||
|
fmt.Println(primes[len(primes)-1])
|
||||||
|
|
||||||
|
ok_primes := []int{}
|
||||||
|
// find all the primes that are below 2 mil
|
||||||
|
for i := 0; primes[i] < 2_000_000; i++ {
|
||||||
|
ok_primes = append(ok_primes, primes[i])
|
||||||
|
}
|
||||||
|
fmt.Println(ok_primes[len(ok_primes)-1])
|
||||||
|
// find the sum
|
||||||
|
total := 0
|
||||||
|
for _, v := range ok_primes {
|
||||||
|
total += v
|
||||||
|
}
|
||||||
|
fmt.Println(total)
|
||||||
|
}
|
12
10/main.py
Normal file
12
10/main.py
Normal file
@ -0,0 +1,12 @@
|
|||||||
|
primes = [2, 3, 5, 7, 11, 13, 17, 19, 23, 29, 31, 37, 41, 43, 47, 53, 59, 61, 67, 71, 73, 79, 83, 89, 97]
|
||||||
|
|
||||||
|
for i in range(100, 105_000):
|
||||||
|
if i % 1000 == 0:
|
||||||
|
print(f"status {i} len({len(primes)})", end="\r")
|
||||||
|
for j in primes:
|
||||||
|
if i % j == 0:
|
||||||
|
break
|
||||||
|
else:
|
||||||
|
primes.append(i)
|
||||||
|
|
||||||
|
|
83
11/main.py
Normal file
83
11/main.py
Normal file
@ -0,0 +1,83 @@
|
|||||||
|
matrix = [
|
||||||
|
[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]
|
||||||
|
]
|
||||||
|
|
||||||
|
def down_diagonal(sx, sy, ln):
|
||||||
|
results = []
|
||||||
|
for i in range(ln):
|
||||||
|
results.append(matrix[sx+i][sy+i])
|
||||||
|
return results
|
||||||
|
|
||||||
|
def up_diagonal(sx, sy, ln):
|
||||||
|
results = []
|
||||||
|
for i in range(ln):
|
||||||
|
results.append(matrix[sx-i][sy+i])
|
||||||
|
return results
|
||||||
|
|
||||||
|
def down_col(sx, sy, ln):
|
||||||
|
results = []
|
||||||
|
for i in range(ln):
|
||||||
|
results.append(matrix[sx-i][sy])
|
||||||
|
return results
|
||||||
|
|
||||||
|
def left_row(sx, sy, ln):
|
||||||
|
results = []
|
||||||
|
for i in range(ln):
|
||||||
|
results.append(matrix[sx][sy+i])
|
||||||
|
return results
|
||||||
|
|
||||||
|
def product(l):
|
||||||
|
result = 1
|
||||||
|
for i in l:
|
||||||
|
result *= i
|
||||||
|
return result
|
||||||
|
|
||||||
|
dd_max = 0
|
||||||
|
for i in range(17):
|
||||||
|
for j in range(17):
|
||||||
|
prod = product(down_diagonal(i,j,4))
|
||||||
|
if prod > dd_max:
|
||||||
|
dd_max = prod
|
||||||
|
|
||||||
|
ud_max = 0
|
||||||
|
for i in range(3, 20):
|
||||||
|
for j in range(0, 17):
|
||||||
|
prod = product(up_diagonal(i, j, 4))
|
||||||
|
if prod > ud_max:
|
||||||
|
ud_max = prod
|
||||||
|
|
||||||
|
col_max = 0
|
||||||
|
for i in range(0, 17):
|
||||||
|
for j in range(20):
|
||||||
|
prod = product(down_col(i, j, 4))
|
||||||
|
if prod > col_max:
|
||||||
|
col_max = prod
|
||||||
|
|
||||||
|
row_max = 0
|
||||||
|
for i in range(20):
|
||||||
|
for j in range(0, 17):
|
||||||
|
prod = product(left_row(i, j, 4))
|
||||||
|
if prod > row_max:
|
||||||
|
row_max = prod
|
||||||
|
|
||||||
|
print(max([dd_max, ud_max, col_max, row_max]))
|
||||||
|
|
20
2/main.py
Normal file
20
2/main.py
Normal file
@ -0,0 +1,20 @@
|
|||||||
|
|
||||||
|
|
||||||
|
fibs = [1]
|
||||||
|
|
||||||
|
a = 1
|
||||||
|
b = 1
|
||||||
|
|
||||||
|
while a <= 4_000_000 or b <= 4_000_000:
|
||||||
|
num = a + b
|
||||||
|
fibs.append(num)
|
||||||
|
a = b
|
||||||
|
b = num
|
||||||
|
print(fibs)
|
||||||
|
|
||||||
|
even_fibs = []
|
||||||
|
for i in fibs:
|
||||||
|
if i % 2 == 0:
|
||||||
|
even_fibs.append(i)
|
||||||
|
|
||||||
|
print(sum(even_fibs))
|
24
3/main.py
Normal file
24
3/main.py
Normal file
@ -0,0 +1,24 @@
|
|||||||
|
num = 600_851_475_143
|
||||||
|
#num = 13195
|
||||||
|
primes = [2, 3, 5, 7, 11, 13, 17, 19, 23, 29, 31, 37, 41, 43, 47, 53, 59, 61, 67, 71, 73, 79, 83, 89, 97]
|
||||||
|
|
||||||
|
|
||||||
|
for i in range(100, 40000):
|
||||||
|
for j in primes:
|
||||||
|
if i % j == 0:
|
||||||
|
break
|
||||||
|
else:
|
||||||
|
primes.append(i)
|
||||||
|
|
||||||
|
print("Got Primes")
|
||||||
|
|
||||||
|
|
||||||
|
working_primes = []
|
||||||
|
for i in primes:
|
||||||
|
dividend = num / i
|
||||||
|
#if float(dividend).is_integer():
|
||||||
|
# working_primes.append(i)
|
||||||
|
if str(float(dividend)).split(".")[1] == "0":
|
||||||
|
working_primes.append(i)
|
||||||
|
|
||||||
|
print(working_primes)
|
27
4/main.py
Normal file
27
4/main.py
Normal file
@ -0,0 +1,27 @@
|
|||||||
|
three_digit_nums = [i for i in range(100, 999)]
|
||||||
|
|
||||||
|
|
||||||
|
def is_palindrome(n):
|
||||||
|
norm = str(n)
|
||||||
|
even = len(norm) % 2 == 0
|
||||||
|
if even:
|
||||||
|
half = norm[:int(len(norm)/2)]
|
||||||
|
other_half = [c for c in norm[int(len(norm)/2):]]
|
||||||
|
other_half.reverse()
|
||||||
|
for i, c in enumerate(half):
|
||||||
|
if c != other_half[i]:
|
||||||
|
return False
|
||||||
|
else:
|
||||||
|
return True
|
||||||
|
else:
|
||||||
|
return False
|
||||||
|
|
||||||
|
products = []
|
||||||
|
|
||||||
|
for i in three_digit_nums:
|
||||||
|
for j in three_digit_nums:
|
||||||
|
product = i*j
|
||||||
|
if is_palindrome(product):
|
||||||
|
products.append(product)
|
||||||
|
|
||||||
|
print(max(products))
|
22
5/main.py
Normal file
22
5/main.py
Normal file
@ -0,0 +1,22 @@
|
|||||||
|
num = 2520
|
||||||
|
|
||||||
|
factors = [i for i in range(1, 20+1)]
|
||||||
|
|
||||||
|
|
||||||
|
def perf_num(num):
|
||||||
|
for f in factors:
|
||||||
|
if num % f == 0:
|
||||||
|
pass
|
||||||
|
else:
|
||||||
|
return False
|
||||||
|
else:
|
||||||
|
return True
|
||||||
|
|
||||||
|
i = 1
|
||||||
|
while True:
|
||||||
|
if i % 1000 == 0:
|
||||||
|
print("status", i, end='\r')
|
||||||
|
if perf_num(i):
|
||||||
|
print("found num", i)
|
||||||
|
break
|
||||||
|
i += 1
|
6
6/main.py
Normal file
6
6/main.py
Normal file
@ -0,0 +1,6 @@
|
|||||||
|
nums = [i for i in range(1, 100+1)]
|
||||||
|
|
||||||
|
square_of_sums = sum(nums)**2
|
||||||
|
sum_of_squares = sum([i**2 for i in nums])
|
||||||
|
|
||||||
|
print(square_of_sums-sum_of_squares)
|
13
7/main.py
Normal file
13
7/main.py
Normal file
@ -0,0 +1,13 @@
|
|||||||
|
primes = [2, 3, 5, 7, 11, 13, 17, 19, 23, 29, 31, 37, 41, 43, 47, 53, 59, 61, 67, 71, 73, 79, 83, 89, 97]
|
||||||
|
|
||||||
|
for i in range(100, 105_000):
|
||||||
|
if i % 1000 == 0:
|
||||||
|
print(f"status {i} len({len(primes)})", end="\r")
|
||||||
|
for j in primes:
|
||||||
|
if i % j == 0:
|
||||||
|
break
|
||||||
|
else:
|
||||||
|
primes.append(i)
|
||||||
|
|
||||||
|
print()
|
||||||
|
print(primes[10_000])
|
43
8/main.py
Normal file
43
8/main.py
Normal file
@ -0,0 +1,43 @@
|
|||||||
|
big_num = """73167176531330624919225119674426574742355349194934
|
||||||
|
96983520312774506326239578318016984801869478851843
|
||||||
|
85861560789112949495459501737958331952853208805511
|
||||||
|
12540698747158523863050715693290963295227443043557
|
||||||
|
66896648950445244523161731856403098711121722383113
|
||||||
|
62229893423380308135336276614282806444486645238749
|
||||||
|
30358907296290491560440772390713810515859307960866
|
||||||
|
70172427121883998797908792274921901699720888093776
|
||||||
|
65727333001053367881220235421809751254540594752243
|
||||||
|
52584907711670556013604839586446706324415722155397
|
||||||
|
53697817977846174064955149290862569321978468622482
|
||||||
|
83972241375657056057490261407972968652414535100474
|
||||||
|
82166370484403199890008895243450658541227588666881
|
||||||
|
16427171479924442928230863465674813919123162824586
|
||||||
|
17866458359124566529476545682848912883142607690042
|
||||||
|
24219022671055626321111109370544217506941658960408
|
||||||
|
07198403850962455444362981230987879927244284909188
|
||||||
|
84580156166097919133875499200524063689912560717606
|
||||||
|
05886116467109405077541002256983155200055935729725
|
||||||
|
71636269561882670428252483600823257530420752963450
|
||||||
|
"""
|
||||||
|
big_num = big_num.replace("\n", "")
|
||||||
|
|
||||||
|
|
||||||
|
window = 13
|
||||||
|
|
||||||
|
biggest_product = 1
|
||||||
|
start = 0
|
||||||
|
end = window
|
||||||
|
|
||||||
|
while start+window < len(big_num):
|
||||||
|
part = big_num[start:end]
|
||||||
|
digits = [int(c) for c in part]
|
||||||
|
total = 1
|
||||||
|
for i in digits:
|
||||||
|
total *= i
|
||||||
|
if total > biggest_product:
|
||||||
|
biggest_product = total
|
||||||
|
start += 1
|
||||||
|
end += 1
|
||||||
|
print(biggest_product)
|
||||||
|
|
||||||
|
|
22
9/main.go
Normal file
22
9/main.go
Normal file
@ -0,0 +1,22 @@
|
|||||||
|
package main
|
||||||
|
|
||||||
|
import "fmt"
|
||||||
|
|
||||||
|
func main() {
|
||||||
|
for a := 1; a < 1000; a++ {
|
||||||
|
for b := 1; b < 1000; b++ {
|
||||||
|
for c := 1; c < 1000; c++ {
|
||||||
|
if c%100 == 0 {
|
||||||
|
fmt.Printf("iter %v %v %v\r", a, b, c)
|
||||||
|
}
|
||||||
|
if is_pythag(a, b, c) && a+b+c == 1000 {
|
||||||
|
fmt.Printf("\n\n winner {a:%v b:%v c:%v} sum: %v\n", a, b, c, a*b*c)
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
func is_pythag(a int, b int, c int) bool {
|
||||||
|
return (a < b && b < c) && (a*a+b*b == c*c)
|
||||||
|
}
|
22
9/main.py
Normal file
22
9/main.py
Normal file
@ -0,0 +1,22 @@
|
|||||||
|
a = 1
|
||||||
|
b = 1
|
||||||
|
c = 1
|
||||||
|
|
||||||
|
def is_pythag(a, b, c):
|
||||||
|
return a < b < c and a**2 + b**2 == c**2
|
||||||
|
|
||||||
|
|
||||||
|
for a in range(1, 1000):
|
||||||
|
for b in range(1, 1000):
|
||||||
|
for c in range(1, 1000):
|
||||||
|
|
||||||
|
if c % 100 == 0:
|
||||||
|
print(f"iter {a} {b} {c}", end="\r")
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
if is_pythag(a, b, c) and a+b+c==1000:
|
||||||
|
print(f"a {a} b {b} c {c}")
|
||||||
|
else:
|
||||||
|
continue
|
12798
project_euler_problems.txt
Normal file
12798
project_euler_problems.txt
Normal file
File diff suppressed because it is too large
Load Diff
Loading…
x
Reference in New Issue
Block a user