Renamed all folders
This commit is contained in:
47
021/main.py
Normal file
47
021/main.py
Normal file
@@ -0,0 +1,47 @@
|
||||
import os
|
||||
import math
|
||||
import numpy as np
|
||||
|
||||
# Evaluate the sum all amicable numbers under 10000
|
||||
# A pair of number is amicable if the sum of their proper divisors is equal
|
||||
# to each other, they are then both called amicable numbers
|
||||
|
||||
def getDivs(n):
|
||||
ds = [True] * math.ceil(n/2)
|
||||
|
||||
for i in range(1, len(ds)):
|
||||
if ds[i] and n % (i+1) != 0:
|
||||
j = i
|
||||
while j < len(ds):
|
||||
ds[j] = False
|
||||
j = j + i + 1
|
||||
|
||||
res = []
|
||||
for i in range(0, len(ds)):
|
||||
if ds[i]:
|
||||
res.append(i+1)
|
||||
return res
|
||||
|
||||
def getSumDivs(n):
|
||||
return sum(getDivs(n))
|
||||
|
||||
def main():
|
||||
print("Hello, this is Patrick")
|
||||
|
||||
dsums = [getSumDivs(x) for x in range(1, 10001)]
|
||||
|
||||
res = 0
|
||||
for i in range(len(dsums)):
|
||||
di = dsums[i]
|
||||
if (i+1) != di:
|
||||
if di-1 < len(dsums):
|
||||
if i+1 == dsums[di-1]:
|
||||
res = res + i + 1
|
||||
else:
|
||||
dj = getSumDivs(di)
|
||||
if i+1 == dj:
|
||||
res = res + i + 1
|
||||
print(res)
|
||||
|
||||
if __name__ == "__main__":
|
||||
main()
|
||||
Reference in New Issue
Block a user