from math import floor xs = [ 102473, 84495, 98490, 68860, 62204, 72810, 65185, 145951, 77892, 108861, 70764, 67286, 74002, 80773, 52442, 131505, 107162, 126993, 59784, 64231, 91564, 68585, 98735, 69020, 77332, 60445, 65826, 111506, 95431, 146687, 135119, 86804, 95915, 85434, 111303, 148127, 132921, 136213, 89004, 143137, 144853, 143017, 104386, 100612, 54760, 63813, 144191, 84481, 69718, 84936, 98621, 124993, 92736, 60369, 137284, 101902, 112726, 51784, 126496, 85005, 101661, 137278, 136637, 90340, 100209, 53683, 50222, 132060, 98797, 139054, 135638, 100632, 137849, 125333, 103981, 76954, 134352, 74229, 93402, 62552, 50286, 57066, 98439, 120708, 117827, 107884, 72837, 148663, 125645, 61460, 120555, 142473, 106668, 58612, 58576, 143366, 90058, 121087, 89546, 126161, ] def fuel_for_mass(x): """Return the amount of fuel (in mass) required for a mass of X. The total amount of fuel includes the amount of fuel required for the fuel itself, since fuel also has a mass weights.""" mass_fuel = floor(x / 3) - 2 if mass_fuel < 0: return 0 else: fuel_fuel = fuel_for_mass(mass_fuel) return mass_fuel + fuel_fuel print(sum(fuel_for_mass(x) for x in xs))