aboutsummaryrefslogtreecommitdiff
path: root/challenge-243/ianrifkin/python/ch-2.py
blob: f12c1dcfc124c36938e2f2d76eac1487b94f29b4 (plain)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
#!/usr/local/bin/python3
import sys, argparse
import math

# Challenge 243, Task 2: Floor Sum

# You are given an array of positive integers (>=1).
# Write a script to return the sum of floor(nums[i] / nums[j]) where 0 <= i,j < nums.length. The floor() function returns the integer part of the division.
# See https://theweeklychallenge.org/blog/perl-weekly-challenge-243/#TASK2 for more information on this challenge

# else set default values from example if no cmd line input

def main(argv):
    argParser = argparse.ArgumentParser()
    argParser.add_argument("-n", "--nums", nargs='+', type=int, help="space seperated list of positive integers e.g. -n 10 30 4 5")
    args = argParser.parse_args()

    if args.nums:
        nums = args.nums
        print( sum_floors(nums) )
    else:
        #Example 1
        nums = (2, 5, 9)
        print( sum_floors(nums) )     
        #Example 2
        nums = (7, 7, 7, 7, 7, 7, 7)
        print( sum_floors(nums) )        
        
def sum_floors(nums):
    sum_of_floors = 0
    for i, inum in enumerate(nums):
        for j, jnum in enumerate(nums):
            sum_of_floors = sum_of_floors + math.floor(inum / jnum)
    return sum_of_floors
                    
        
if __name__ == "__main__":
   main(sys.argv[1:])