# Sum by Factors

From Codewars.com:

Given an array of positive or negative integers
`I= [i1,..,in]`
you have to produce a sorted array P of the form
`[ [p, sum of all ij of I for which p is a prime factor (p positive) of ij] ...]`
P will be sorted by increasing order of the prime numbers. The final result has to be given as a string in Java, C# or C++ and as an array of arrays in other languages.
Example:
`I = [12, 15] # result = [[2, 12], [3, 27], [5, 15]]`
[2, 3, 5] is the list of all prime factors of the elements of I, hence the result.
Notes: It can happen that a sum is 0 if some numbers are negative!
Example: I = [15, 30, -45] 5 divides 15, 30 and (-45) so 5 appears in the result, the sum of the numbers for which 5 is a factor is 0 so we have [5, 0] in the result amongst others.

This was a bit of a doozy

`def sum_for_list(lst):    # largest = find largest abs value in lst    def simple_abs(num):        return -num if num < 0 else num    abs_value_lst = []    for i in lst:        value = simple_abs(i)        abs_value_lst.append(value)            largest = max(abs_value_lst)    # p = [generate prime numbers somehow], from 2 to largest        p = []    count = 2        while count < largest:        isprime = True                for x in range(2, int((count/2) + 1)):            if count % x == 0:                 isprime = False                break                if isprime:            p.append(count)                count += 1    # sum_list = factor, sum    sum_list = []    sum = 0    counter = 0    #loop through prime array        for j in p:        sum = 0        counter = 0        for i in lst:        # loop through lst            #if not lst[i] % p: (is divisible)            if not i % j:                sum += i                counter += 1            # sum += lst[i]            #sum_list.append([p, sum])        if counter:            sum_list.append([j, sum])    #return list    return sum_list`
Like what you read? Give Brendt Bly a round of applause.

From a quick cheer to a standing ovation, clap to show how much you enjoyed this story.