From 459539a24263e4d6ed17df295649d2ae521bd3b9 Mon Sep 17 00:00:00 2001 From: Thomas Köhler Date: Mon, 15 Jan 2024 21:33:27 +0100 Subject: Add solution 252. MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit Signed-off-by: Thomas Köhler --- challenge-252/jeanluc2020/python/ch-1.py | 65 ++++++++++++++++++++++++++++++++ 1 file changed, 65 insertions(+) create mode 100755 challenge-252/jeanluc2020/python/ch-1.py (limited to 'challenge-252/jeanluc2020/python/ch-1.py') diff --git a/challenge-252/jeanluc2020/python/ch-1.py b/challenge-252/jeanluc2020/python/ch-1.py new file mode 100755 index 0000000000..baf5f0e66e --- /dev/null +++ b/challenge-252/jeanluc2020/python/ch-1.py @@ -0,0 +1,65 @@ +#!/usr/bin/python3 +# https://theweeklychallenge.org/blog/perl-weekly-challenge-252/#TASK1 +# +# Task 1: Special Numbers +# ======================= +# +# You are given an array of integers, @ints. +# +# Write a script to find the sum of the squares of all special elements of the +# given array. +# +## An element $int[i] of @ints is called special if i divides n, i.e. n % i == 0. +## Where n is the length of the given array. Also the array is 1-indexed for the task. +# +## Example 1 +## +## Input: @ints = (1, 2, 3, 4) +## Output: 21 +## +## There are exactly 3 special elements in the given array: +## $ints[1] since 1 divides 4, +## $ints[2] since 2 divides 4, and +## $ints[4] since 4 divides 4. +## +## Hence, the sum of the squares of all special elements of given array: +## 1 * 1 + 2 * 2 + 4 * 4 = 21. +# +## Example 2 +## +## Input: @ints = (2, 7, 1, 19, 18, 3) +## Output: 63 +## +## There are exactly 4 special elements in the given array: +## $ints[1] since 1 divides 6, +## $ints[2] since 2 divides 6, +## $ints[3] since 3 divides 6, and +## $ints[6] since 6 divides 6. +## +## Hence, the sum of the squares of all special elements of given array: +## 2 * 2 + 7 * 7 + 1 * 1 + 3 * 3 = 63 +# +############################################################ +## +## discussion +## +############################################################ +# +# We initialize a variable $result = 0, then we look at each +# element in the list and add its square to $result if $i divides n. + + +def special_numbers(ints: list) -> int: + print("Input: (", ", ".join([str(x) for x in ints]), ")") + n = len(ints) + result = 0 + for i in range(n): + elem = ints[i] + if n % (i+1) == 0: + result += elem*elem + print(f"Output: {result}") + return result + +special_numbers([1, 2, 3, 4]) +special_numbers([2, 7, 1, 19, 18, 3]) + -- cgit