$\text{Mathematica}$ ile soyle yapilabilir. Once sayilarin bolenlerini, sonra toplamlarini bulmaliyiz. $\text{DivisorSum[n]}$ bunun ikisini de yapiyor ama sayinin kendisini de ekliyor toplama. Onun icin sayinin kendisini toplamdan cikarmamiz gerek.
$\text{DivisorSum[n]-n }$ aradigimiz sey. Peki bu toplam sayinin kendisinden buyuk mu?
$\text{DivisorSum[n]-n >n}\implies \text{DivisorSum[n] >2n}$
Eger buyukse sayimiz zengin sayi. If kullananarak test ederiz, dogruysa sayisi aliriz, degilse almayiz.
$\text{zengin[n_] := If[DivisorSum[n, # &] > 2 n, n, Nothing]}$
$28123$'e kadar olan zengin sayilari bulalim.
$\text{zenginSayilar = Table[zengin[n], {n, 28123}];}$
Bize ikili toplamlar lazim. Aslinda matrisin kosegen dahil ust kismi lazim, 12+18 ile 18+12 ayni toplami verecegi icin iki defa islem yapmaya gerek yok. $\text{Subsets}$ fonksiyonu tam aradimiz fonksiyon, zenginSayilar'in 2'li alt kumelerini bulur. Bir sartla, 12+12 almaz. Cunku kumelerde tekrarlayan eleman olmaz.
$\text{ikiliZengin = Subsets[zenginSayilar, {2}];}$
Bize ikiliZengin'lerin toplami lazim. $\text{Total /@ ikiliZengin}$. Ayni olan ikiliZengin'lerin toplami $2\times\text{ikiliZengin}$,(12+12,18+18,... gibi)
Bu iki kumenin birlesimi bize zengin iki sayının toplamı olarak yazılabilen sayilari verir.
Zengin iki sayının toplamı olarak yazılamayan sayilari $\text{Complement}$ ile buluruz ve bu sayilarin toplami istenen cevap olur..
zengin[n_] := If[DivisorSum[n, # &] > 2 n, n, Nothing]
zenginSayilar = Table[zengin[n], {n, 28123}];
ikiliZengin = Subsets[zenginSayilar, {2}];
Total@Complement[Range@28123,Join @@ {2 zenginSayilar, Total /@ ikiliZengin}]
4179871