Initial commit

This commit is contained in:
2020-06-21 23:53:32 +02:00
commit 7ca64a7a82
67 changed files with 1698 additions and 0 deletions
data
src
C
Task67 - Maximum path sum II.pytask1 - Multiples of 3 and 5.pytask10 - Summation of primes.pytask104 - Pandigital Fibonacci ends.pytask11 - Largest product in a grid.pytask12 - Highly divisible triangular number.pytask13 - Large sum.pytask14 - Longest Collatz sequence.pytask15 - Lattice paths.pytask16 - Power digit sum.pytask17 - Number letter counts.pytask18 - Maximum path sum I.pytask19 - Counting Sundays.pytask20 - Factorial digit sum.pytask21 - Amicable numbers.pytask22 - Names scores.pytask23 - Non-abundant sums.pytask24 - Lexicographic permutations.pytask25 - 1000-digit Fibonacci number.pytask26 - Reciprocal cycles.pytask27 - Quadratic primes.pytask28 - Number spiral diagonals.pytask29 - Distinct powers.pytask30 - Digit fifth powers.pytask32 - Pandigital products.pytask33 - Digit cancelling fractions.pytask34 - Digit factorials.pytask35 - Circular primes.pytask36 - Double-base palindromes.pytask40 - Truncatable primes.pytask42 - Coded triangle numbers.pytask43 - Sub-string divisibility.pytask44 - Pentagon numbers.pytask45 - Triangular pentagonal and hexagonal.pytask48 - Self powers.pytask49 - Prime permutations.pytask52 - Permuted multiples.pytask53 - Combinatoric selections.pytask56 - Powerful digit sum.pytask57 - Square root convergents.pytask58 - Spiral primes.pytask59 - XOR decryption.pytask6 - Sum square difference.pytask69 - Totient maximum.pytask7 - 10001st prime.pytask70 - Totient permutation.pytask8 - Largest product in a series.pytask9 - Special Pythagorean triplet.pytask92 - Square digit chains.pytask97 - Large non-Mersenne prime.pytest.py

20
data/11.txt Normal file

@ -0,0 +1,20 @@
08 02 22 97 38 15 00 40 00 75 04 05 07 78 52 12 50 77 91 08
49 49 99 40 17 81 18 57 60 87 17 40 98 43 69 48 04 56 62 00
81 49 31 73 55 79 14 29 93 71 40 67 53 88 30 03 49 13 36 65
52 70 95 23 04 60 11 42 69 24 68 56 01 32 56 71 37 02 36 91
22 31 16 71 51 67 63 89 41 92 36 54 22 40 40 28 66 33 13 80
24 47 32 60 99 03 45 02 44 75 33 53 78 36 84 20 35 17 12 50
32 98 81 28 64 23 67 10 26 38 40 67 59 54 70 66 18 38 64 70
67 26 20 68 02 62 12 20 95 63 94 39 63 08 40 91 66 49 94 21
24 55 58 05 66 73 99 26 97 17 78 78 96 83 14 88 34 89 63 72
21 36 23 09 75 00 76 44 20 45 35 14 00 61 33 97 34 31 33 95
78 17 53 28 22 75 31 67 15 94 03 80 04 62 16 14 09 53 56 92
16 39 05 42 96 35 31 47 55 58 88 24 00 17 54 24 36 29 85 57
86 56 00 48 35 71 89 07 05 44 44 37 44 60 21 58 51 54 17 58
19 80 81 68 05 94 47 69 28 73 92 13 86 52 17 77 04 89 55 40
04 52 08 83 97 35 99 16 07 97 57 32 16 26 26 79 33 27 98 66
88 36 68 87 57 62 20 72 03 46 33 67 46 55 12 32 63 93 53 69
04 42 16 73 38 25 39 11 24 94 72 18 08 46 29 32 40 62 76 36
20 69 36 41 72 30 23 88 34 62 99 69 82 67 59 85 74 04 36 16
20 73 35 29 78 31 90 01 74 31 49 71 48 86 81 16 23 57 05 54
01 70 54 71 83 51 54 69 16 92 33 48 61 43 52 01 89 19 67 48

15
data/18.txt Normal file

@ -0,0 +1,15 @@
75
95 64
17 47 82
18 35 87 10
20 04 82 47 65
19 01 23 75 03 34
88 02 77 73 07 63 67
99 65 04 28 06 16 70 92
41 41 26 56 83 40 80 70 33
41 48 72 33 47 32 37 16 94 29
53 71 44 65 25 43 91 52 97 51 14
70 11 33 28 77 73 17 78 39 68 17 57
91 71 52 38 17 14 91 43 58 50 27 29 48
63 66 04 68 89 53 67 30 73 16 69 87 40 31
04 62 98 27 23 09 70 98 73 93 38 53 60 04 23

1
data/22.txt Normal file

File diff suppressed because one or more lines are too long

1
data/42.txt Normal file

File diff suppressed because one or more lines are too long

1
data/59.txt Normal file

@ -0,0 +1 @@
36,22,80,0,0,4,23,25,19,17,88,4,4,19,21,11,88,22,23,23,29,69,12,24,0,88,25,11,12,2,10,28,5,6,12,25,10,22,80,10,30,80,10,22,21,69,23,22,69,61,5,9,29,2,66,11,80,8,23,3,17,88,19,0,20,21,7,10,17,17,29,20,69,8,17,21,29,2,22,84,80,71,60,21,69,11,5,8,21,25,22,88,3,0,10,25,0,10,5,8,88,2,0,27,25,21,10,31,6,25,2,16,21,82,69,35,63,11,88,4,13,29,80,22,13,29,22,88,31,3,88,3,0,10,25,0,11,80,10,30,80,23,29,19,12,8,2,10,27,17,9,11,45,95,88,57,69,16,17,19,29,80,23,29,19,0,22,4,9,1,80,3,23,5,11,28,92,69,9,5,12,12,21,69,13,30,0,0,0,0,27,4,0,28,28,28,84,80,4,22,80,0,20,21,2,25,30,17,88,21,29,8,2,0,11,3,12,23,30,69,30,31,23,88,4,13,29,80,0,22,4,12,10,21,69,11,5,8,88,31,3,88,4,13,17,3,69,11,21,23,17,21,22,88,65,69,83,80,84,87,68,69,83,80,84,87,73,69,83,80,84,87,65,83,88,91,69,29,4,6,86,92,69,15,24,12,27,24,69,28,21,21,29,30,1,11,80,10,22,80,17,16,21,69,9,5,4,28,2,4,12,5,23,29,80,10,30,80,17,16,21,69,27,25,23,27,28,0,84,80,22,23,80,17,16,17,17,88,25,3,88,4,13,29,80,17,10,5,0,88,3,16,21,80,10,30,80,17,16,25,22,88,3,0,10,25,0,11,80,12,11,80,10,26,4,4,17,30,0,28,92,69,30,2,10,21,80,12,12,80,4,12,80,10,22,19,0,88,4,13,29,80,20,13,17,1,10,17,17,13,2,0,88,31,3,88,4,13,29,80,6,17,2,6,20,21,69,30,31,9,20,31,18,11,94,69,54,17,8,29,28,28,84,80,44,88,24,4,14,21,69,30,31,16,22,20,69,12,24,4,12,80,17,16,21,69,11,5,8,88,31,3,88,4,13,17,3,69,11,21,23,17,21,22,88,25,22,88,17,69,11,25,29,12,24,69,8,17,23,12,80,10,30,80,17,16,21,69,11,1,16,25,2,0,88,31,3,88,4,13,29,80,21,29,2,12,21,21,17,29,2,69,23,22,69,12,24,0,88,19,12,10,19,9,29,80,18,16,31,22,29,80,1,17,17,8,29,4,0,10,80,12,11,80,84,67,80,10,10,80,7,1,80,21,13,4,17,17,30,2,88,4,13,29,80,22,13,29,69,23,22,69,12,24,12,11,80,22,29,2,12,29,3,69,29,1,16,25,28,69,12,31,69,11,92,69,17,4,69,16,17,22,88,4,13,29,80,23,25,4,12,23,80,22,9,2,17,80,70,76,88,29,16,20,4,12,8,28,12,29,20,69,26,9,69,11,80,17,23,80,84,88,31,3,88,4,13,29,80,21,29,2,12,21,21,17,29,2,69,12,31,69,12,24,0,88,20,12,25,29,0,12,21,23,86,80,44,88,7,12,20,28,69,11,31,10,22,80,22,16,31,18,88,4,13,25,4,69,12,24,0,88,3,16,21,80,10,30,80,17,16,25,22,88,3,0,10,25,0,11,80,17,23,80,7,29,80,4,8,0,23,23,8,12,21,17,17,29,28,28,88,65,75,78,68,81,65,67,81,72,70,83,64,68,87,74,70,81,75,70,81,67,80,4,22,20,69,30,2,10,21,80,8,13,28,17,17,0,9,1,25,11,31,80,17,16,25,22,88,30,16,21,18,0,10,80,7,1,80,22,17,8,73,88,17,11,28,80,17,16,21,11,88,4,4,19,25,11,31,80,17,16,21,69,11,1,16,25,2,0,88,2,10,23,4,73,88,4,13,29,80,11,13,29,7,29,2,69,75,94,84,76,65,80,65,66,83,77,67,80,64,73,82,65,67,87,75,72,69,17,3,69,17,30,1,29,21,1,88,0,23,23,20,16,27,21,1,84,80,18,16,25,6,16,80,0,0,0,23,29,3,22,29,3,69,12,24,0,88,0,0,10,25,8,29,4,0,10,80,10,30,80,4,88,19,12,10,19,9,29,80,18,16,31,22,29,80,1,17,17,8,29,4,0,10,80,12,11,80,84,86,80,35,23,28,9,23,7,12,22,23,69,25,23,4,17,30,69,12,24,0,88,3,4,21,21,69,11,4,0,8,3,69,26,9,69,15,24,12,27,24,69,49,80,13,25,20,69,25,2,23,17,6,0,28,80,4,12,80,17,16,25,22,88,3,16,21,92,69,49,80,13,25,6,0,88,20,12,11,19,10,14,21,23,29,20,69,12,24,4,12,80,17,16,21,69,11,5,8,88,31,3,88,4,13,29,80,22,29,2,12,29,3,69,73,80,78,88,65,74,73,70,69,83,80,84,87,72,84,88,91,69,73,95,87,77,70,69,83,80,84,87,70,87,77,80,78,88,21,17,27,94,69,25,28,22,23,80,1,29,0,0,22,20,22,88,31,11,88,4,13,29,80,20,13,17,1,10,17,17,13,2,0,88,31,3,88,4,13,29,80,6,17,2,6,20,21,75,88,62,4,21,21,9,1,92,69,12,24,0,88,3,16,21,80,10,30,80,17,16,25,22,88,29,16,20,4,12,8,28,12,29,20,69,26,9,69,65,64,69,31,25,19,29,3,69,12,24,0,88,18,12,9,5,4,28,2,4,12,21,69,80,22,10,13,2,17,16,80,21,23,7,0,10,89,69,23,22,69,12,24,0,88,19,12,10,19,16,21,22,0,10,21,11,27,21,69,23,22,69,12,24,0,88,0,0,10,25,8,29,4,0,10,80,10,30,80,4,88,19,12,10,19,9,29,80,18,16,31,22,29,80,1,17,17,8,29,4,0,10,80,12,11,80,84,86,80,36,22,20,69,26,9,69,11,25,8,17,28,4,10,80,23,29,17,22,23,30,12,22,23,69,49,80,13,25,6,0,88,28,12,19,21,18,17,3,0,88,18,0,29,30,69,25,18,9,29,80,17,23,80,1,29,4,0,10,29,12,22,21,69,12,24,0,88,3,16,21,3,69,23,22,69,12,24,0,88,3,16,26,3,0,9,5,0,22,4,69,11,21,23,17,21,22,88,25,11,88,7,13,17,19,13,88,4,13,29,80,0,0,0,10,22,21,11,12,3,69,25,2,0,88,21,19,29,30,69,22,5,8,26,21,23,11,94

100
data/67.txt Normal file

@ -0,0 +1,100 @@
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

35
src/C/Task2.c Normal file

@ -0,0 +1,35 @@
#include <stdio.h>
int fib(int a) {
if(a==0){
return 0;
}else if(a==1){
return 1;
} else {
return (fib(a-1) + fib(a-2));
}
}
int main()
{
int count = 0;
int result = 0;
while(1){
int x = fib(count);
if(x>4000000){
printf("%d", result);
break;
}
if(x%2==0){
result = result + x;
}
count = count+1;
}
}

BIN
src/C/task20 Normal file

Binary file not shown.

120
src/C/task20.c Normal file

@ -0,0 +1,120 @@
#include <stdio.h>
#include <stdlib.h>
#include <math.h>
int isPrime(int n){
for(int i=2;i<sqrt(n);i++){
if(n%i==0){
return 0;
}
}
return 1;
}
/*Returns amount of primes between 0 and n*/
int amountPrimes(int n){
int x=0;
for (int i = 2; i < n; i++)
{
if (isPrime(i)){
x+=1;
}
}
return x;
}
/*Returns array with primes between 0 and n*/
int * primesIn(int n){
int x = amountPrimes(n);
int * primes;
primes = malloc(sizeof(int)*x);
x=0;
for (int i = 2; i < n; i++)
{
if (isPrime(i)){
primes[x]=i;
x+=1;
}
}
return primes;
}
/*Factorial of n*/
long fact(int n){
if (n==1){
return 1;
} else {
return n*fact(n-1);
}
}
/*Retrieves the amount of factors in a number*/
int factoramount(int n){
if (isPrime(n)){
return 1;
} else {
for
}
}
/*Returns array with factors of n*/
int * factorize(int n){
int x = amountPrimes(n);
int * primes;
primes = malloc(sizeof(int)*x);
if(isPrime(n)) {
} else {
for (size_t i = 2; i < n; i++)
{
if (i%j==0)
{
}
}
}
}
int main(){
int * primes = primesIn(100);
for (size_t i = 0; i < amountPrimes(100); i++){
printf("Prime: %d\n", *(primes+i));
}
int * factCounter[amountPrimes(100)]
for (size_t i = 1; i < 100; i++){
}
long x = fact(100);
//SUM OF DIGITS OF X
printf("%ld\n", x);
}

BIN
src/C/task3 Normal file

Binary file not shown.

35
src/C/task3.c Normal file

@ -0,0 +1,35 @@
#include <stdio.h>
#include <math.h>
int isPrime(long n){
for(int i=2;i<sqrt(n);i++){
if(n%i==0){
return 0;
}
}
return 1;
}
int main()
{
long count=1;
int big=0;
long number=600851475143;
while(count<number){
if(isPrime(count)){
//printf("Prime: %ld \n", count);
if (number%count==0){
printf("New big: %ld \n", count);
big=count;
}
}
count+=1;
}
return 0;
}

BIN
src/C/task4 Normal file

Binary file not shown.

39
src/C/task4.c Normal file

@ -0,0 +1,39 @@
#include <stdio.h>
#include <string.h>
int main(){
int biggest = 0;
for (int i = 100; i < 1000; i++)
{
for (int j = 100; j < 1000; j++)
{
int x=i*j;
int z=x;
int y=0;
while (x != 0)
{
y = y * 10;
y = y + x%10;
x = x/10;
}
//printf("%d - %d\n", y, z);
if (y==z & y>biggest){
biggest = z;
}
}
}
printf("%d\n", biggest);
return 0;
}

13
src/C/task48.c Normal file

@ -0,0 +1,13 @@
#include <std.io>
int main{
long a=0
for(int i=0;i<=1000;i++){
a+=(i^i);
}
printf("%ld", a);
}

BIN
src/C/task5 Normal file

Binary file not shown.

28
src/C/task5.c Normal file

@ -0,0 +1,28 @@
#include <stdio.h>
int main(){
int x=5;
while(1){
for (int i = 2; i <= 20; i++)
{
if (x%i!=0){
break;
}
if(i==20){
printf("%d\n", x);
return 0;
}
}
x+=1;
}
return 0;
}

@ -0,0 +1,11 @@
#Same as task 18
with open('67.txt') as fp:
data = [list(map(int, line.strip().split(' '))) for line in fp]
data.reverse()
for i in range(len(data)):
for j in range(len(data[i])-1):
data[i+1][j]+= (data[i][j] if data[i][j]>data[i][j+1] else data[i][j+1])
print(data[len(data)-1][0])

@ -0,0 +1 @@
print(sum([i for i in range(1, 1000) if i%3==0 or i%5==0]))

@ -0,0 +1,14 @@
def is_prime(n):
if n == 2 or n == 3: return True
if n < 2 or n%2 == 0: return False
if n < 9: return True
if n%3 == 0: return False
r = int(n**0.5)
f = 5
while f <= r:
if n%f == 0: return False
if n%(f+2) == 0: return False
f +=6
return True
print(sum([i for i in range(1,2000001) if is_prime(i)]))

@ -0,0 +1,32 @@
def fib(n):
if( n == 0):
return 0
else:
x = 0
y = 1
for i in range(1,n):
z = (x + y)
x = y
y = z
return y
digits=list(range(0,10))
def containsPandigits(n):
first = [int(str(n)[i]) for i in range(0,10)]
last = [int(str(n)[len(str(n))-i-1]) for i in range(0,10)]
if set(digits).issubset(first) and set(digits).issubset(last):
return True
return False
# for i in range(0,10):
# if (not i in first) or (not i in last):
# return False
# return True
i=2
while True:
if (len(str(fib(i))) >= 18) and (containsPandigits(fib(i))):
print(fib(i))
break
i+=1

@ -0,0 +1,62 @@
with open('11.txt') as fp:
data = [list(map(int, line.strip().split(' '))) for line in fp]
#I is y axis, J is x axis
def scanHorizontal():
#Horizontal, offset i, offset j, number
max = ["Horizontal", 0, 0, 0]
for i in range(0, len(data[0])):
for j in range(0, len(data)-3):
x= data[i][j]*data[i][j+1]*data[i][j+2]*data[i][j+3]
if x > max[3]:
max[1] = i
max[2] = j
max[3] = x
return max
def scanVertical():
#Vertical, offset i, offset j, number
max = ["Vertical", 0, 0, 0]
for i in range(0, len(data[0])-3):
for j in range(0, len(data)):
x = data[i][j]*data[i+1][j]*data[i+2][j]*data[i+3][j]
if x > max[3]:
max[1] = i
max[2] = j
max[3] = x
return max
def scanDiagonal():
#Diagonal, offset i, offset j, number
max = ["Diagonal", 0, 0, 0]
for i in range(0, len(data[0])-3):
for j in range(0, len(data)-3):
x = data[i][j]*data[i+1][j+1]*data[i+2][j+2]*data[i+3][j+3]
if x > max[3]:
max[1] = i
max[2] = j
max[3] = x
return max
def scanInvertDiagonal():
#IDiagonal, offset i, offset j, number
max = ["IDiagonal", 0, 0, 0]
for i in range(0, len(data[0])-3):
for j in range(3, len(data)):
x = data[i][j]*data[i+1][j-1]*data[i+2][j-2]*data[i+3][j-3]
if x > max[3]:
max[1] = i
max[2] = j
max[3] = x
return max
x=scanHorizontal()
if scanVertical()[3] > x[3]:
x = scanVertical()
if scanDiagonal()[3] > x[3]:
x = scanDiagonal()
if scanInvertDiagonal()[3] > x[3]:
x = scanInvertDiagonal()
print(x)

@ -0,0 +1,69 @@
def is_prime(n):
if n == 2 or n == 3: return True
if n < 2 or n%2 == 0: return False
if n < 9: return True
if n%3 == 0: return False
r = int(n**0.5)
f = 5
while f <= r:
if n%f == 0: return False
if n%(f+2) == 0: return False
f +=6
return True
def factorize(n):
factors = []
if is_prime(n):
factors.append(n)
else:
while not is_prime(n):
for i in range(2,int(n)):
if n%i==0:
factors.append(i)
n=n/i
break
factors.append(n)
return factors
n=3
addNum=3
while True:
x=-1
counter = []
pointer = 0
#Make an array Counter[] that contains the amount of each prime factor in the number
for i in factorize(n):
if i==pointer:
counter[x]+=1
else:
x+=1
pointer=i
counter.append(1)
factors = 1
for i in counter:
factors = factors * (i+1)
if factors > 500:
print(n)
break
n+=addNum
addNum+=1
# x=3
# y=3
# max = 0
# while factorCount(x)!=501:
# x+=y
# y+=1
# if factorCount(x)>max:
# max = factorCount(x)
# print str(x) + " -> " + str(max)
# print x

102
src/task13 - Large sum.py Normal file

@ -0,0 +1,102 @@
number = 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
print(str(number)[:10])

@ -0,0 +1,16 @@
counter = [0, 0]
for i in range(1, 1000001):
x=1
i2= i
while i>1:
if i%2==0:
i=i/2
x+=1
else:
i=3*i+1
x+=1
if x > counter[1]:
counter[0] = i2
counter[1] = x
print(counter)

@ -0,0 +1,13 @@
#https://betterexplained.com/articles/navigate-a-grid-using-combinations-and-permutations/
import math
def factorial(n):
x=1
for i in range(1, n+1):
x=x*i
return x
#print(factorial(40)/(factorial(20)*factorial(40-20)))
print(math.comb(40,20))

@ -0,0 +1,9 @@
num = 2**1000
result = 0
while num > 0:
d = num%10
num = num//10
result += d
print(result)

@ -0,0 +1,75 @@
wordNumber = {
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",
100 : "hundred",
1000 : "thousand",
"and" : "and"
}
for i in wordNumber:
wordNumber[i] = len(wordNumber[i])
def belowHundred(n):
if n <=20:
return wordNumber[n]
elif n<100:
d1=int(str(n)[0]) # 00x0
d2=int(str(n)[1]) # 000x
if d2==0:
return wordNumber[n]
else:
return wordNumber[d1*10] + wordNumber[d2]
def wordsofNum(n):
if n<100:
return belowHundred(n)
elif n<1000:
answersum = 0
d1=int(str(n)[0]) # 0x00
d2=int(str(n)[1]) # 00x0
d3=int(str(n)[2]) # 000x
answersum+=wordNumber[d1] + wordNumber[100]
if d2!=0 or d3!=0:
answersum+=belowHundred(int(str(n)[1:3]))
answersum+=wordNumber["and"]
return answersum
elif n==1000:
return wordNumber[1] + wordNumber[1000]
x=0
for n in range(1, 1001):
x+=wordsofNum(n)
print(x)

@ -0,0 +1,11 @@
#Same as task 67
with open('18.txt') as fp:
data = [list(map(int, line.strip().split(' '))) for line in fp]
data.reverse()
for i in range(len(data)):
for j in range(len(data[i])-1):
data[i+1][j]+= (data[i][j] if data[i][j]>data[i][j+1] else data[i][j+1])
print(data[len(data)-1][0])

@ -0,0 +1,38 @@
#Day number, month, year
date = [366, 1, 1901]
Month = {
1:31,
2:28,
3:31,
4:30,
5:31,
6:30,
7:31,
8:31,
9:30,
10:31,
11:30,
12:31
}
result = 0
while date[2]<=2000:
date[1]=1
Month[2]=28
if date[2]%4==0:
if date[2]%100==0 and date[2]%400!=0:
print("special: " + str(date[2]))
break
Month[2]=29
for i in range(1,13):
date [0]+=Month[i]
if date[0]%7==0:
result+=1
date[2]+=1
print(result)

@ -0,0 +1,64 @@
import math
def factorial(n):
if n==1:
return 1
else:
return n*factorial(n-1)
def isPrime(n):
for i in range(2, int(n)):
if (n%i==0):
return False
return True
def primesIn(n):
counter = 0
primes = []
for i in range(2, n):
if isPrime(i):
primes.append(i)
counter+=1
return primes
def factorize(n):
factors = []
if isPrime(n):
factors.append(n)
else:
while not isPrime(n):
for i in range(2,int(n)):
if n%i==0:
factors.append(i)
n=n/i
break
factors.append(n)
return factors
primes = []
for i in range(2,101):
if isPrime(i):
primes.append(i)
primeDict = { i : 0 for i in primes }
for i in range(2,101):
num = factorize(i)
print(i)
for j in range(0, len(num)):
primeDict[num[j]] = primeDict[num[j]] + 1
print("Primedict " + str(num[j]) + " ++")
print(primeDict)
num = factorial(100)
result = 0
while num > 0:
d = num%10
num = num//10
result += d
int(str(num)[:10])

@ -0,0 +1,35 @@
def is_prime(n):
if n == 2 or n == 3: return True
if n < 2 or n%2 == 0: return False
if n < 9: return True
if n%3 == 0: return False
r = int(n**0.5)
f = 5
while f <= r:
if n%f == 0: return False
if n%(f+2) == 0: return False
f +=6
return True
def factorize(n):
factors = [1]
if not is_prime(n) and n>1:
for i in range(2,n):
if n%i==0:
factors.append(i)
return factors
def sumFactors(factors):
result = 0
for i in factors:
result+=i
return result
result = 0
for i in range(2, 10001):
b = sumFactors(factorize(i))
if i==sumFactors(factorize(b)) and i!=b:
result+=i
print(result)

@ -0,0 +1,22 @@
import csv
def wordSum(n):
wordsum=0
for character in n:
wordsum+=ord(character)-64
return wordsum
data =[]
with open('22.txt') as file:
reader = csv.reader(file, delimiter=",", quotechar='"')
data = list(reader)[0]
data.sort()
totalsum=0
counter=1
for i in data:
totalsum+=wordSum(i)*counter
counter+=1
print(totalsum)

@ -0,0 +1,50 @@
import math
from functools import reduce
def factors(x):
result = [1]
i = 2
while i*i <= x: #Other way of writing i<=sqrt(x)
if x % i == 0:
result.append(i)
if x//i != i:
result.append(x//i)
i += 1
return result
def is_abundant(n):
return sum(factors(n)) > n
abundants= [i for i in range(28123) if is_abundant(i)]
range28 = [range(28123+1)]
abundantsums = []
result = []
for i in range(len(abundants)):
for j in range(len(abundants)-i):
if abundants[i]+abundants[i-j]<=28123 and abundants[i]+abundants[i-j] in range28:
abundantsums.append(abundants[i]+abundants[i-j])
range28.pop(range28.index(abundants[i]+abundants[i-j]))
result.append(abundants[i]+abundants[i-j])
print(len(abundantsums)) #24 266 061
print("calculated abundantsums")
#result = sum([i for i in range(28123+1) if not i in abundantsums])
# result = 0
# for i in range(28123+1):
# print(i)
# if not i in abundantsums:
# result+=i
# range28 = [range(28123+1)]
# result = []
# for i in abundantsums:
# if i in range28:
# range28.pop(range28.index(i))
# result.append(i)
print(result)

@ -0,0 +1,7 @@
import itertools
perms = list(itertools.permutations([0,1,2,3,4,5,6,7,8,9], 10))
print(''.join(map(str, perms[1000000-1])))

@ -0,0 +1,27 @@
#!/usr/bin/env python2.7
def fib(n):
if n==1 or n==2:
return 1
else:
return fib(n-1)+fib(n-2)
def fibn(n):
var1=1
var2=1
bet=0
for i in range(2, n):
bet=var2
var2=var2+var1
var1=bet
return var2
i = 1
while len(str(fibn(i)))<1000:
i+=1
print(i)

@ -0,0 +1,4 @@
for i in range(1,1000):
x = 1/i

@ -0,0 +1,30 @@
def is_prime(n):
if n == 2 or n == 3: return True
if n < 2 or n%2 == 0: return False
if n < 9: return True
if n%3 == 0: return False
r = int(n**0.5)
f = 5
while f <= r:
if n%f == 0: return False
if n%(f+2) == 0: return False
f +=6
return True
a=0
b=0
maxn=0
for i in range(-1000, 1001):
for j in range(-1000, 1001):
n = 1
while True:
if not is_prime(n**2+i*n+j):
break
n+=1
if n > maxn:
a=i
b=j
maxn = n
print(a*b)

@ -0,0 +1,13 @@
split = 2
x = 1
result = 1
while split != 1000:
for i in range(4):
x += split
result+=x
split +=2
print(result)

@ -0,0 +1,15 @@
powerList = []
for i in range(2, 101):
for j in range(2, 101):
powerList.append(i**j)
powerList.sort()
i=0
while i < len(powerList):
if powerList[i]==powerList[i-1]:
powerList.pop(i)
i-=1
i+=1
print(len(powerList))

@ -0,0 +1,7 @@
def isDigitSum(n):
x=sum([int(i)**5 for i in str(n)])
if n==x:
return True
return False
print(sum([i for i in range(2,1000000) if isDigitSum(i)]))

@ -0,0 +1,16 @@
totalSum=0
usedFactors = []
for i in range(1, 10000):
if i%100==0:
print(str(i/100) + "%")
for j in range(1, 10000):
x=i*j
if len(str(i))+len(str(j))+len(str(x))==9:
result = sum([int(k) for k in str(x)])
result += sum([int(k) for k in str(i)])
result += sum([int(k) for k in str(j)])
if sum==1+2+3+4+5+6+7+8+9:
totalSum+=x
print(totalSum)
#HINT: Some products can be obtained in more than one way so be sure to only include it once in your sum.

@ -0,0 +1,40 @@
def is_prime(n):
if n == 2 or n == 3: return True
if n < 2 or n%2 == 0: return False
if n < 9: return True
if n%3 == 0: return False
r = int(n**0.5)
f = 5
while f <= r:
if n%f == 0: return False
if n%(f+2) == 0: return False
f +=6
return True
def factorize(n):
factors = []
if is_prime(n):
factors.append(n)
else:
while not is_prime(n):
for i in range(2,n):
if n%i==0:
factors.append(i)
n=n/i
break
factors.append(n)
return factors
for i in range(10, 100):
for j in range(10, 100):
if \
(int(str(i)[0]) == int(str(j)[1]) or \
int(str(i)[1]) == int(str(j)[0]) or \
int(str(i)[1]) == int(str(j)[1]) or \
int(str(i)[0]) == int(str(j)[0])) and \
not (i%10==0 and j%10==0):
if not any(elem in factorize(i) for elem in factorize(j)):
print(str(i) + " : " + str(j))
#Trivial examples betyr muligens at det er snakk om alt som ikke kan deles på en integer...

@ -0,0 +1,20 @@
def factorial(n):
x=1
for i in range(1, n+1):
x=x*i
return x
def sumFact(n):
sumfact=0
for i in str(n):
sumfact+=factorial(int(i))
return sumfact
result = 0
for i in range(3, 1000000):
if sumFact(i)==i:
result+=i
print(result)

@ -0,0 +1,26 @@
import itertools
def is_prime(n):
if n == 2 or n == 3: return True
if n < 2 or n%2 == 0: return False
if n < 9: return True
if n%3 == 0: return False
r = int(n**0.5)
f = 5
while f <= r:
if n%f == 0: return False
if n%(f+2) == 0: return False
f +=6
return True
result=0
for i in range(1,1000001):
if not any(num in str(i) for num in ("0","2","4","6","8")):
x = list(itertools.permutations(str(i), len(str(i))))
x=["".join([str(a) for a in elem]) for elem in x]
if any([True for n in x if is_prime(int(n))]):
result+=1
print(result)
# for j in range(len(str(i))):

@ -0,0 +1,9 @@
def isPalindromic(n):
if n==int(str(n)[::-1]):
return True
else:
return False
print(sum([i for i in range(1,1000001) if isPalindromic(i) and isPalindromic(int(str(bin(i))[2:]))]))

@ -0,0 +1,4 @@
from math import prod
longNum = "".join([str(i) for i in range(1000000)])
print (prod([int(longNum[10**i]) for i in range(7)]))

@ -0,0 +1,21 @@
import csv
import math
with open('42.txt') as file:
reader = csv.reader(file, delimiter=",", quotechar='"')
words = list(reader)[0]
def wordValue(n):
return sum([ord(i.lower())-96 for i in n])
def triangleBase(n):
return (math.sqrt(8*n+1)-1)/2
result = 0
for i in words:
n = wordValue(i)
if triangleBase(n).is_integer():
result+=1
print(result)
#inverse triangle: (sqrt(8*n+1)-1)/2

@ -0,0 +1,18 @@
from itertools import permutations
pan = "".join([str(i) for i in range(0,10)])
panPerms = ["".join(i) for i in permutations(pan)]
primes = [2,3,5,7,11,13,17]
sum=0
isDivisible=True
for i in range(len(panPerms)):
isDivisible=True
for j in range(len(primes)):
x = panPerms[i][1+j:4+j]
if not int(x)%primes[j]==0:
isDivisible = False
break
if isDivisible:
sum+=int(panPerms[i])
print(sum)

@ -0,0 +1,5 @@
#
#Inverse Pentagonal: (sqrt(24*n+1)+1)/6

@ -0,0 +1,16 @@
import math
def hex(n):
return n*(2*n-1)
i=144
while True:
x=hex(i)
if ((math.sqrt(24*x+1)+1)/6).is_integer() and ((math.sqrt(8*x+1)-1)/2).is_integer():
print(x)
break
i+=1
#Inverse Pentagonal: (sqrt(24*n+1)+1)/6
#Inverse Triangle: (sqrt(8*n+1)-1)/2

@ -0,0 +1,4 @@
sum= sum([i**i for i in range(1,1001)])
print(str(sum)[-10:])

@ -0,0 +1,43 @@
from itertools import permutations
def is_prime(n):
if n == 2 or n == 3: return True
if n < 2 or n%2 == 0: return False
if n < 9: return True
if n%3 == 0: return False
r = int(n**0.5)
f = 5
while f <= r:
if n%f == 0: return False
if n%(f+2) == 0: return False
f +=6
return True
num = []
for i in range (1000, 10000):
perms = list(permutations(str(i)))
perms = ["".join([str(x) for x in elem]) for elem in perms]
x = (lambda a, b: any(j in b for j in a))(perms, num)
if not x:
num.append(str(i))
num.pop(num.index("1478"))
#For all 4 digit numbers:
#If any permutation of i is already in num[], don't append, else append
#Remove 1487 from num[]
for i in num:
perms = list(permutations(str(i)))
perms = ["".join([str(x) for x in elem]) for elem in perms]
for j in range(len(perms)):
if not (int(perms[j])>=1000):
perms.pop(j)
primes=0
for j in perms:
if is_prime(int(j)):
primes+=1
if primes<=3:
pass

@ -0,0 +1,19 @@
def containsSameDigits(a, b):
if sorted(a) == sorted(b):
return True
return False
i=1
while True:
counter = 0
for j in range(6):
if not containsSameDigits(str(i),str(i*(j+1))):
break
else:
counter+=1
if counter==6:
print(i)
break
i+=1

@ -0,0 +1,12 @@
import math
result = 0
for i in range(22,101):
for j in range(0,101):
if j > i:
break
if math.comb(i,j)>1000000:
result+=((i-(j-1))-j)
break
print(result)

@ -0,0 +1,11 @@
def digitSum(n):
return sum([int(i) for i in str(n)])
max = 0
for a in range(100):
for b in range(100):
if digitSum(a**b)>max:
max = digitSum(a**b)
print(max)

@ -0,0 +1,36 @@
# def SQRConvergent(n):
# if n==0:
# return (0)
# else:
# return 1+(1/(2+SQRConvergent2(n-1)))
# def SQRConvergent2(n):
# if n==0:
# return (0)
# else:
# return (1/(2+SQRConvergent2(n-1)))
def memoize(f):
memo = {}
def helper(x):
if x not in memo:
memo[x] = f(x)
return memo[x]
return helper
#(p/r) -> r2=r1+p1
# p2=p1+2*r1
def SQRCFraction(n):
x = [3,2]
for i in range(n-1):
x = [x[0]+2*x[1], x[0]+x[1]]
return x
def countDigits(n):
return sum([1 for i in str(n)])
result=0
for i in range(1000):
if countDigits(SQRCFraction(i+1)[0]) > countDigits(SQRCFraction(i+1)[1]):
result+=1
print(result)

@ -0,0 +1,33 @@
def is_prime(n):
if n == 2 or n == 3: return True
if n < 2 or n%2 == 0: return False
if n < 9: return True
if n%3 == 0: return False
r = int(n**0.5)
f = 5
while f <= r:
if n%f == 0: return False
if n%(f+2) == 0: return False
f +=6
return True
split = 2
x = 1
primes = 0
total=1
while True:
for i in range(4):
total+=1
x += split
if is_prime(x):
primes+=1
if (primes/total<0.1):
break
#print(str(primes) + " - " + str(total) + "→" + str(primes/total))
split +=2
print(split+1)

@ -0,0 +1,16 @@
import csv
with open('59.txt') as file:
reader = csv.reader(file, delimiter=",")
numbers = list(reader)[0]
numbers = [int(i) for i in numbers]
#Det finnes mange 80 i txt-filen. Derfor kan vi anta at dette bør være mellomrom, altså 32
#80 -> 01010000
#XOR 01110000 -> 112
#32 -> 00100000
xored=[i^112 for i in numbers]
message = [chr(i) for i in xored]
print(message)

@ -0,0 +1,7 @@
def squaresum(n) :
return (n*(n+1)*(2*n+1))//6
sum1= squaresum(100)
sum2= sum(range(1,101))**2
print(sum2-sum1)

@ -0,0 +1,57 @@
import math
def is_prime(n):
if n == 2 or n == 3: return True
if n < 2 or n%2 == 0: return False
if n < 9: return True
if n%3 == 0: return False
r = int(n**0.5)
f = 5
while f <= r:
if n%f == 0: return False
if n%(f+2) == 0: return False
f +=6
return True
def tot(n):
if is_prime(n):
return n-1
else:
return len([i for i in range(1,n) if math.gcd(i,n)==1])
def phi(n) :
result = n # Initialize result as n
# Consider all prime factors
# of n and for every prime
# factor p, multiply result with (1 - 1 / p)
p = 2
while(p * p<= n) :
# Check if p is a prime factor.
if (n % p == 0) :
# If yes, then update n and result
while (n % p == 0) :
n = n // p
result = result * (1.0 - (1.0 / (float) (p)))
p = p + 1
# If n has a prime factor
# greater than sqrt(n)
# (There can be at-most one
# such prime factor)
if (n > 1) :
result = result * (1.0 - (1.0 / (float)(n)))
return (int)(result)
max = [0,0]
for n in range(2,1000001):
totn = phi(n)
if n/totn > max[1]:
max = [n, n/totn]
print(max)

@ -0,0 +1,29 @@
def isPrime(n):
for i in range(2, int(n**0.5)):
if (n%i==0):
return False
return True
def is_prime(n):
if n == 2 or n == 3: return True
if n < 2 or n%2 == 0: return False
if n < 9: return True
if n%3 == 0: return False
r = int(n**0.5)
f = 5
while f <= r:
if n%f == 0: return False
if n%(f+2) == 0: return False
f +=6
return True
x=0
y=0
while y!=10001:
x+=1
if is_prime(x):
y+=1
# print(str(y) + " -> " + str(x))
print(x)

@ -0,0 +1,46 @@
def phi(n) :
result = n # Initialize result as n
# Consider all prime factors
# of n and for every prime
# factor p, multiply result with (1 - 1 / p)
p = 2
while(p * p<= n) :
# Check if p is a prime factor.
if (n % p == 0) :
# If yes, then update n and result
while (n % p == 0) :
n = n // p
result = result * (1.0 - (1.0 / (float) (p)))
p = p + 1
# If n has a prime factor
# greater than sqrt(n)
# (There can be at-most one
# such prime factor)
if (n > 1) :
result = result * (1.0 - (1.0 / (float)(n)))
return (int)(result)
def containsSameDigits(a, b):
if sorted(str(a)) == sorted(str(b)):
return True
return False
result = 0
minimum = 1000
for i in range(2,10**7):
x = phi(i)
if containsSameDigits(i, x) and i/x< minimum:
result = i
minimum = i/x
print(result)
print(result)

@ -0,0 +1,17 @@
x = "7316717653133062491922511967442657474235534919493496983520312774506326239578318016984801869478851843858615607891129494954595017379583319528532088055111254069874715852386305071569329096329522744304355766896648950445244523161731856403098711121722383113622298934233803081353362766142828064444866452387493035890729629049156044077239071381051585930796086670172427121883998797908792274921901699720888093776657273330010533678812202354218097512545405947522435258490771167055601360483958644670632441572215539753697817977846174064955149290862569321978468622482839722413756570560574902614079729686524145351004748216637048440319989000889524345065854122758866688116427171479924442928230863465674813919123162824586178664583591245665294765456828489128831426076900422421902267105562632111110937054421750694165896040807198403850962455444362981230987879927244284909188845801561660979191338754992005240636899125607176060588611646710940507754100225698315520005593572972571636269561882670428252483600823257530420752963450"
max1 = 0
for i in range(0, 1000-12):
y=x[i:i+13]
z=1
for j in range(0,13):
z = z*int(y[j])
if z > max1:
print(z)
max1 = z
print(max1)

@ -0,0 +1,11 @@
for i in range(1,1001):
a = i
for j in range(1,1001-i):
b= j
if (a+b)>=1000:
break
c=1000-a-b
if a**2+b**2==c**2:
print(a*b*c)
exit()

@ -0,0 +1,19 @@
def squareOfDigits(n):
n=str(n)
return sum([int(n[i])**2 for i in range(0, len(n))])
result=0
for i in range(1, 10000000):
if i%100000==0:
print(str(i/100000) + "%")
while True:
i=squareOfDigits(i)
if i==1:
break
elif i==89:
result+=1
break
print(result)

@ -0,0 +1,5 @@
print(str(28433*(2**7830457)+1)[-10:-0])
# for i in range(40):
# print(2**i)

23
src/test.py Normal file

@ -0,0 +1,23 @@
b = ["ABAR 200", "CDXE 500", "BKWR 250", "BTSQ 890", "DRTY 600"]
c = ["A", "B"]
def stock_list(listOfArt, listOfCat):
n = []
for item in listOfArt:
n.append(item.split(" "))
sum = []
for item in range(len(listOfCat)):
sum.append(0)
#sum[item]+= [int(x[1]) for x in n if listOfCat[item]==x[0][0]
for x in n:
if listOfCat[item]==x[0][0]:
sum[item]+=int(x[1])
return sum
print(stock_list(b,c))