diff options
Diffstat (limited to 'progs/a486.py')
-rw-r--r-- | progs/a486.py | 15 |
1 files changed, 15 insertions, 0 deletions
diff --git a/progs/a486.py b/progs/a486.py new file mode 100644 index 0000000..e0ef697 --- /dev/null +++ b/progs/a486.py @@ -0,0 +1,15 @@ +def amicable_numbers_sum(limit):
+ if not isinstance(limit, int):
+ return "Input is not an integer!"
+ if limit < 1:
+ return "Input must be bigger than 0!"
+ amicables = set()
+ for num in range(2, limit+1):
+ if num in amicables:
+ continue
+ sum_fact = sum([fact for fact in range(1, num) if num % fact == 0])
+ sum_fact2 = sum([fact for fact in range(1, sum_fact) if sum_fact % fact == 0])
+ if num == sum_fact2 and num != sum_fact:
+ amicables.add(num)
+ amicables.add(sum_fact2)
+ return sum(amicables)
\ No newline at end of file |