How do I find out the numbers with same no of digits in a set of given numbers
Given n
integers, write an algorithm and the subsequent Python code to print all numbers that are sumequivalent to the first number. Two numbers and n
are said to be sumequivalent if m
and n
have the same number of digits and the sum of the digits in and n
are equal. 12381
is sumequivalent to 10545
. Here both the numbers are five digit numbers. Sum of the digits in 12381
is 1+2+3+8+1=15
. Similarly, the sum of the digits in 10545
is 15
.
1 answer

from collections import defaultdict a = [12345,124,34567,2346,98985,10545,12381] def sum_digits(n): s = 0 while n: s += n % 10 n //= 10 return s d=defaultdict(list) for number in a: d[sum_digits(number)].append(number) result=[d[n] for n in sorted(d, reverse=True)] print(result)