Add more solutions
Added solutions for problems 21, 22, 23, 24 and 25 both in C and in python
This commit is contained in:
1
Python/names.txt
Normal file
1
Python/names.txt
Normal file
File diff suppressed because one or more lines are too long
@ -28,12 +28,12 @@ def main():
|
||||
|
||||
for line in fp:
|
||||
triang.append(line.strip('\n').split())
|
||||
|
||||
|
||||
fp.close()
|
||||
|
||||
for i in range(len(triang)):
|
||||
triang[i] = list(map(int, triang[i]))
|
||||
|
||||
|
||||
max_ = 0
|
||||
sum_triangle(triang, 15, 0, 0, 0)
|
||||
|
||||
|
40
Python/p021.py
Normal file
40
Python/p021.py
Normal file
@ -0,0 +1,40 @@
|
||||
#!/usr/bin/python3
|
||||
|
||||
import math
|
||||
|
||||
from timeit import default_timer
|
||||
|
||||
def sum_of_divisors(n):
|
||||
limit = math.floor(math.sqrt(n)) + 1
|
||||
|
||||
sum_ = 1
|
||||
|
||||
for i in range(2, limit):
|
||||
if n % i == 0:
|
||||
sum_ = sum_ + i
|
||||
if n != i * i:
|
||||
sum_ = sum_ + n // i
|
||||
|
||||
return sum_
|
||||
|
||||
def main():
|
||||
start = default_timer()
|
||||
|
||||
sum_ = 0
|
||||
|
||||
for i in range(2, 10000):
|
||||
n = sum_of_divisors(i)
|
||||
if i != n and sum_of_divisors(n) == i:
|
||||
sum_ = sum_ + i + n
|
||||
|
||||
sum_ = sum_ // 2
|
||||
|
||||
end = default_timer()
|
||||
|
||||
print('Project Euler, Problem 21')
|
||||
print('Answer: {}'.format(sum_))
|
||||
|
||||
print('Elapsed time: {:.9f} seconds'.format(end - start))
|
||||
|
||||
if __name__ == '__main__':
|
||||
main()
|
35
Python/p022.py
Normal file
35
Python/p022.py
Normal file
@ -0,0 +1,35 @@
|
||||
#!/usr/bin/python3
|
||||
|
||||
from timeit import default_timer
|
||||
|
||||
def main():
|
||||
start = default_timer()
|
||||
|
||||
try:
|
||||
fp = open('names.txt', 'r')
|
||||
except:
|
||||
print('Error while opening file {}'.format('names.txt'))
|
||||
exit(1)
|
||||
|
||||
names = list(fp.readline().replace('"', '').split(','))
|
||||
names.sort()
|
||||
|
||||
sum_ = 0
|
||||
|
||||
for i in range(len(names)):
|
||||
l = len(names[i])
|
||||
score = 0
|
||||
for j in range(l):
|
||||
score = score + ord(names[i][j]) - ord('A') + 1
|
||||
score = score * (i + 1)
|
||||
sum_ = sum_ + score
|
||||
|
||||
end = default_timer()
|
||||
|
||||
print('Project Euler, Problem 22')
|
||||
print('Answer: {}'.format(sum_))
|
||||
|
||||
print('Elapsed time: {:.9f} seconds'.format(end - start))
|
||||
|
||||
if __name__ == '__main__':
|
||||
main()
|
51
Python/p023.py
Normal file
51
Python/p023.py
Normal file
@ -0,0 +1,51 @@
|
||||
#!/usr/bin/python3
|
||||
|
||||
import math
|
||||
|
||||
from timeit import default_timer
|
||||
|
||||
def is_abundant(n):
|
||||
limit = math.floor(math.sqrt(n)) + 1
|
||||
sum_ = 1
|
||||
|
||||
for i in range(2, limit):
|
||||
if n % i == 0:
|
||||
sum_ = sum_ + i
|
||||
if n != i * i:
|
||||
sum_ = sum_ + n // i
|
||||
|
||||
return sum_ > n
|
||||
|
||||
def main():
|
||||
start = default_timer()
|
||||
|
||||
ab_nums = [False] * 28124
|
||||
|
||||
for i in range(12, 28124):
|
||||
ab_nums[i] = is_abundant(i)
|
||||
|
||||
sums = [False] * 28124
|
||||
|
||||
for i in range(1, 28123):
|
||||
if ab_nums[i]:
|
||||
for j in range(i, 28123):
|
||||
if ab_nums[j]:
|
||||
sum_ = i + j
|
||||
if sum_ <= 28123:
|
||||
sums[sum_] = True
|
||||
|
||||
sum_ = 0
|
||||
|
||||
for i in range(1, 28124):
|
||||
if not sums[i]:
|
||||
sum_ = sum_ + i
|
||||
|
||||
end = default_timer()
|
||||
|
||||
print('Project Euler, Problem 23')
|
||||
print('Answer: {}'.format(sum_))
|
||||
|
||||
print('Elapsed time: {:.9f} seconds'.format(end - start))
|
||||
|
||||
if __name__ == '__main__':
|
||||
main()
|
21
Python/p024.py
Normal file
21
Python/p024.py
Normal file
@ -0,0 +1,21 @@
|
||||
#!/usr/bin/python3
|
||||
|
||||
from itertools import permutations
|
||||
|
||||
from timeit import default_timer
|
||||
|
||||
def main():
|
||||
start = default_timer()
|
||||
|
||||
perm = list(permutations('0123456789'))
|
||||
res = int(''.join(map(str, perm[999999])))
|
||||
|
||||
end = default_timer()
|
||||
|
||||
print('Project Euler, Problem 24')
|
||||
print('Answer: {}'.format(res))
|
||||
|
||||
print('Elapsed time: {:.9f} seconds'.format(end - start))
|
||||
|
||||
if __name__ == '__main__':
|
||||
main()
|
28
Python/p025.py
Normal file
28
Python/p025.py
Normal file
@ -0,0 +1,28 @@
|
||||
#!/usr/bin/python3
|
||||
|
||||
from timeit import default_timer
|
||||
|
||||
def main():
|
||||
start = default_timer()
|
||||
|
||||
fib1 = 1
|
||||
fib2 = 1
|
||||
fibn = fib1 + fib2
|
||||
|
||||
i = 3
|
||||
|
||||
while len(str(fibn)) < 1000:
|
||||
fib1 = fib2
|
||||
fib2 = fibn
|
||||
fibn = fib1 + fib2
|
||||
i = i + 1
|
||||
|
||||
end = default_timer()
|
||||
|
||||
print('Project Euler, Problem 25')
|
||||
print('Answer: {}'.format(i))
|
||||
|
||||
print('Elapsed time: {:.9f} seconds'.format(end - start))
|
||||
|
||||
if __name__ == '__main__':
|
||||
main()
|
Reference in New Issue
Block a user