diff --git a/diagrams/Test-diagram.drawio b/diagrams/Test-diagram.drawio new file mode 100644 index 0000000..8dbba62 --- /dev/null +++ b/diagrams/Test-diagram.drawio @@ -0,0 +1 @@ + \ No newline at end of file diff --git a/diagrams/d2test.d2 b/diagrams/d2test.d2 new file mode 100644 index 0000000..76b565a --- /dev/null +++ b/diagrams/d2test.d2 @@ -0,0 +1,10 @@ +ingest API -> elasticsearch.stage -> elasticsearch.bronze -> elasticsearch.silver -> elasticsearch.gold + +BM -> elasticsearch.gold +BM.shape: page +elasticsearch.stage.shape: cylinder +elasticsearch.bronze.shape: cylinder +elasticsearch.silver.shape: cylinder +elasticsearch.gold.shape: cylinder +elasticsearch.(stage -> bronze)[0]: stage_to_bronze +elasticsearch.(bronze -> bronze): Anomalies diff --git a/src/amicable_numbers.py b/src/amicable_numbers.py index fe4636a..445bb13 100644 --- a/src/amicable_numbers.py +++ b/src/amicable_numbers.py @@ -18,6 +18,17 @@ def are_amicable(n, m): return False +def find_amicable(n): + n_divisors = get_divisors(n) + candidate = sum(n_divisors) + # test comment + candidate_divisors = get_divisors(candidate) + if sum(candidate_divisors) == n: + return candidate + else: + return None + + def main(): parser = ArgumentParser() parser.add_argument('n', help="First number") @@ -31,6 +42,10 @@ def main(): f"which means that the sum of the proper divisors of one number is the other number, and vice versa.") else: print(f"Sorry, {n} and {m} are not amicable numbers :(") + for number in (n, m): + amicable_candidate = find_amicable(number) + if amicable_candidate: + print(f"But {number} is amicable with {amicable_candidate}!") if __name__ == '__main__':