Challenge: Non-abundant sums

Posted on: October 19, 2016 12:57:48 AM
This challenge wants you to find the sum of all the positive integers which cannot be written as the sum of two abundant numbers. An abundant number is described as the sum of the proper divisors are greater than the original number. For example, 12 is the smallest abundant number with it's divisors 1, 2, 3, 4, 6 summed together being 16. Where 12 is the smallest abundant number, 24 is would be the smallest abundant sum.
Program.cs
using Common.Math;
using System;
using System.Collections.Generic;
using System.Linq;

namespace ProjectEuler_23
{
    internal class Program
    {
        private const int HighestNumNotAbundantSum = 28123;

        private static bool IsAbundant(int i)
        {
            int[] factors = i.GetFactors().Distinct().ToArray();
            int sum = factors.Sum() - i;

            return sum > i;
        }

        private static void Main(string[] args)
        {
            int sum = 0;
            bool[] isAbundantSum = new bool[HighestNumNotAbundantSum + 1];
            List abundantNumbers = new List();

            //12 is the lowest abundant number
            for (int i = 12; i < HighestNumNotAbundantSum - 12; i++)
            {
                if (IsAbundant(i))
                {
                    abundantNumbers.Add(i);

                    for (int x = 0; x < abundantNumbers.Count; x++)
                    {
                        int abundantSum = i + abundantNumbers[x];

                        if (abundantSum <= HighestNumNotAbundantSum)
                        {
                            isAbundantSum[abundantSum] = true;
                        }
                    }
                }
            }

            for (int i = 1; i < isAbundantSum.Length; i++)
            {
                if (!isAbundantSum[i])
                {
                    sum += i;
                }
            }

            Console.WriteLine($"Sum of all numbers than can't be the sum of two abundant numbers: {sum}");
        }
    }
}
MathExtensions.cs
using System.Collections.Generic;
using System.Linq;

namespace Common.Math
{
    public static class MathExtensions
    {
        public static int[] GetFactors(this int num)
        {
            List factors = new List { 1, num };
            int root = (int)System.Math.Sqrt(num);

            for (int i = 2; i <= root; i++)
            {
                if (num % i == 0)
                {
                    factors.Add(i);
                    factors.Add(num / i);
                }
            }

            return factors.OrderBy(x => x).ToArray();
        }
    }
}
This code is pretty straight forward, first we loop starting at 12 since it's the lowest known abundant number up to the highest non-abundant number known subtract 12. Then we determine if the number is abundant and store it. To use as few loops as possible, we then calculate out all the possible sums and store those values into a BitArray. Last, we loop through the BitArray and sum all the false values to get the answer.
As a note: I've moved the generating of factors code into a common library that I'm going to start referencing in projects that require it because it is a pretty common math function needed for these. This will likely be the last time I post the code for it, if you're following my posts, you should have this function working for your future projects as well.

Comments


[url=http://medxx.eu/]http://medxx.eu/[/url] extepojete

DavidDap November 19, 2019 2:30:57 PM

Удалено (перепутал топик) --- Вы ошибаетесь. Пишите мне в PM, обсудим. скачать fifa, скачать фифа а также [url=http://15fifa.ru/]15fifa.ru[/url] скачать фифа

StacySaw November 21, 2019 3:30:07 AM

[url=http://ciphony.eu/]http://ciphony.eu/[/url] extepojete

RogerHoumn November 21, 2019 5:31:03 AM

Приветствую вас Знакомые покупали Препараты для лечения [url=http://anticancer24.ru/shop/267/desc/bdenza]BDEnza (Энзалутамид) – Аналог Кстанди (XTANDI)[/url]

Mariainite November 21, 2019 7:17:45 PM

[url=https://axajecynusip.tk]Contest[/url] videos

AlbertBiz November 23, 2019 1:08:39 PM

[url=http://eolp.eu/]http://eolp.eu/[/url] extepojete

Williamcof November 26, 2019 5:36:30 AM

[url=http://lomazy.eu/]http://lomazy.eu/[/url] extepojete

Haroldidola November 27, 2019 4:33:09 AM

[url=http://sonz.eu/]http://sonz.eu/[/url] extepojete

CarlosChavy November 27, 2019 9:39:51 PM

UKP-66 «Metakom – работает, но очень плохо», думаю вам не стоит брать

Dariocow November 29, 2019 11:20:55 AM

[url=https://anticancer24.ru/shop/139/desc/lucisun50]LuciSun - дженерик Сутент (Sutent) - Sunitinib (Сунитиниб)[/url] – это противоопухолевый препарат, который был произведен на основе сунитиниба. Препарат назначают людям с онкологическими заболеваниями, при опухолевом процессе с метастатическими поражениями. Основное действие препарата заключается в том, что активное действующее вещество блокирует тирокиназы – именно эти рецепторы отвечают за поддержание роста опухоли. Благодаря препарату можно подавлять рост опухоли, а процесс распространения метастаз постепенно тормозится. [url=https://anticancer24.ru/shop/139/desc/lucisun50]LuciSun - дженерик Сутент (Sutent ) - Sunitinib (Сунитиниб) купить[/url] можно на этом сайте – мы предлагаем качественную продукцию по адекватным ценам. Опытные специалисты расскажут всю информацию о производителе, при необходимости предъявят сертификаты качества и предоставят прочую актуальную информацию для потенциального покупателя. Как принимать? Принимать таблетки нужно орально, при этом пить их можно, не связывая с приемом пищи. Важно соблюдать одно условие: пить капсулы нужно в одно и то время – чтобы в крови поддерживать оптимальный уровень основного действующего вещества. На [url=https://anticancer24.ru/shop/139/desc/lucisun50]LuciSun - аналог Сутент (Sutent) - Sunitinib (Сунитиниб) цена[/url] колеблется, и этот фактор напрямую зависит от формы выпуска препарата. У нас стоимость лекарства адекватная, одна из самых низких – и это связано с тем, что мы работаем напрямую с производителем. Что касается дозировки, то для каждого пациента она индивидуальная. Как правило, доза зависит от общего самочувствия, сложности заболевания и его запущенности, сопутствующих недугов. Все эти факторы учитывает врач-онколог при назначении препарата. Стандартная дозировка подразумевает ежедневное применение пациентом 50 мг лекарства. Что касается курса – 4 недели человек должен пить таблетки, спустя 2 недели нужно сделать перерыв. При необходимости терапию возобновляют вновь. Про [url=https://anticancer24.ru/shop/139/desc/lucisun50]LuciSun - аналог Сутент (Sutent) - Sunitinib (Сунитиниб) отзывы[/url] положительные. Пациенты, проходившие лечение с применением этого средства, утверждают, что при корректно подобранной дозировке побочные эффекты отсутствуют, лекарство переносится хорошо, а терапия дает положительные результаты. Онкология – не приговор! Благодаря тому, что наука уверенно идет вперед, ученым удается с каждым годом создавать все новые и новые препараты, благодаря которым можно приостановить рост опухоли. На [url=https://anticancer24.ru/shop/139/desc/lucisun50]LuciSun - дженерик Сутент (Sutent) - Sunitinib (Сунитиниб) стоимость[/url] – высокая, но лекарство того стоит. Оно является эффективным, препарат прошел множество клинических испытаний, и все они подтверждают – средство является действительно эффективным. Причем если проводить химио- либо лучевую терапию – в некоторых случаях она является неэффективной. Мало того, облучение крайне негативно действует на все органы и системы организма. У таблеток, конечно, имеются негативные побочные эффекты, но проявляют себя они крайне редко, и никак не сравнятся с побочками, которые возникают после проведения химиотерапии. [url=https://anticancer24.ru/shop/139/desc/lucisun50]сунитиниб цена купить[/url]

Laratravy December 1, 2019 11:42:40 AM

i am from Italy hello. Can you help me translate? /rardor

rardtothe December 2, 2019 5:22:39 PM

Remember me [url=https://yvihulutyfuc.tk]Customer[/url] service video

Zacharyemurb December 5, 2019 12:21:00 PM

https://intruder.superbossgames.com/forum/memberlist.php?mode=viewprofile&u=124164 http://forum.ro-en.ro/index.php?action=profile;u=560503 http://sidelinien.dk/forums/member.php?624979-vax http://chernigov.info/member.php?u=17266 http://pop.israelbody.com/member.php?u=47215 http://xn--90ardkaeifmlc9c.xn--p1ai/forum/member.php?347670-Sap http://yohook.w911.vhostgo.com/bbs/home.php?mod=space&uid=748647 http://vfplayer.com/forum/member.php?u=47784 http://www.xuancaoyuan.com/bbs/home.php?mod=space&uid=1929199 http://chryslerclub.su/forum/memberlist.php?mode=viewprofile&u=46362 http://bmwfarm.ru/member.php?u=16486 http://forum.euro-som.de/memberlist.php?mode=viewprofile&u=18721 http://www.theanglersforum.co.uk/forums/member.php?148908-Cheby http://almjd-group.com/member.php?u=29498 http://forum.dez-gsm.ir/member.php?13099-phine http://www.minimir.su/forum/member.php?u=89167 http://gamersco.com/members/77815-Med https://forum.piratpartiet.se/member.php?u=47783 http://www.weidaoo.com/home.php?mod=space&uid=33047 http://86fest.com/forums/member.php?u=46868 http://www.52zt.cn/home.php?mod=space&uid=454166 http://www.healthytut.com/index.php?action=profile;u=81235 https://forums.hi7ob.com/member.php?u=18780 https://www.assayyarat.com/forums/member340059.html https://www.simracing.su/user/cooft/ sdfadfhjdsfgnsdfgsdfg4357sdfh [url=http://desemco.com/component/k2/item/1/]Best Christmas Background Photos, Pictures and Images[/url] [url=https://ogmerchcc.webs.com/apps/guestbook/]Best Christmas Background Photos, Pictures and Images[/url] [url=https://hongkongfilmfestivals.com/node/25?page=69]Best Christmas Background Photos, Pictures and Images[/url] 514e3d4

gymnangutt December 7, 2019 11:31:29 AM

Ok. I use translate and will be good ok?

itadooro December 7, 2019 3:06:41 PM

[url=http://oxalya.eu/]http://oxalya.eu/[/url] extepojete

gorislavHah December 9, 2019 4:24:19 AM

http://t.weijibao.net/home.php?mod=space&uid=1782 http://www.fitmisc.net/forum/member.php?12116-gelenkin http://abc-parfum.ru/communication/forum/user/17024/ http://forum.cncprovn.com/members/39436-kozlykasRT http://plusland.ru/forum/index.php?PAGE_NAME=profile_view&UID=27158

HunterVof December 9, 2019 11:00:06 AM

[url=http://oxalya.eu/]http://oxalya.eu/[/url] extepojete

mladaHah December 9, 2019 10:46:36 PM

[url=http://manuma.eu/]http://manuma.eu/[/url] extepojete

sebastianHah December 11, 2019 9:10:02 AM

Я думаю, что Вы не правы. Я уверен. Могу отстоять свою позицию. Пишите мне в PM. --- пригодица где скачать fifa 15 на андроид, скачать fifa 15 demo или [url=http://15fifa.ru/]фифа официальный сайт на русском[/url] скачать трейнер для fifa 15

JohnathaFiz December 13, 2019 2:15:07 AM

[url=http://medmix.eu/]http://medmix.eu/[/url] extepojete

ratmiraHah December 14, 2019 7:47:34 AM

[url=https://italignment.tk/business-it/no-SjmundZ62eYM]Business/IT Alignment[/url] [url=https://italignment.tk/business-it/no-SjmundZ62eYM][img]https://i.ytimg.com/vi/jY1V7uBlTDM/hqdefault.jpg[/img][/url]

Josephnig December 16, 2019 6:21:30 PM

Glaucoma Awareness - [url=https://beltlinevision.tk/glaucoma-awareness/o62Bxo6xnbN9iaI]Eye[/url] Doctor in Irving, Texas [url=https://beltlinevision.tk/glaucoma-awareness/o62Bxo6xnbN9iaI][img]https://i.ytimg.com/vi/oIIaXL9NLUk/hqdefault.jpg[/img][/url]

Aaronhoike December 17, 2019 8:14:58 PM

Привет всем! прикольный у вас сайт! Нашел класную базу кино: [url=http://kinofly.xyz/]шерлок сериал смотреть онлайн бесплатно в хорошем[/url] Здесь: [url=http://kinofly.xyz/melodrama/]мелодрамы россии онлайн хорошее качество[/url] смотреть фильмы мелодрамы онлайн хорошего качества бесплатно список 2018 Здесь: http://kinofly.xyz/5973-liamu-hemsvortu-predlozhili-snyatsya-v-dne-nezavisimosti-2.html [b] Лиаму Хемсворту предложили сняться в «Дне независимости 2» смотреть онлайн бесплатно [/b] Здесь: http://kinofly.xyz/11587-chto-stalo-s-krysoy-margo-robbi-podarennoy-dzharedom-leto.html

Jeremywen December 19, 2019 11:31:24 AM

[url=https://locumtenens.tk/what-is/rIxqoaFi1NSfaZU]What Is Locum Tenens?[/url] [url=https://locumtenens.tk/what-is/rIxqoaFi1NSfaZU][img]https://i.ytimg.com/vi/GZ2qq1pr984/hqdefault.jpg[/img][/url]

Alvinved December 21, 2019 6:43:12 PM

[img]https://cache3.youla.io/files/images/780_780/5c/15/5c152320bedcc53b14709024.jpg[/img] [b]Всем привет![/b] Многие уже наверное слышали про такую новогоднюю мульку как Персональное Видеообращение от Деда Мороза. Идея впринципе достаточно простая. Дед Мороз с Экрана Вашего Тв, компьютера, телефона и тд. обращаясь к чайлду по имени поздравляет его с Новым годом! Я своему заказывал такое на прошлый год. Он в радостях катался по полу. В этом решил продублировать тоже самое. [u]Но честно переплачивать лишний раз за такую простую Идею желания не имел![/u] Поэтому предварительно перерыв Гугл и Яндекс нашёл ключ решения. нашёл на одном из закрытых форумов Купон скидку в 50% на данное Видеообращение. [b]Мне не жалко. Делюсь на всеми желающими. Без хайдов и тд.[/b] [u]banzai2020[/u] - скидка 50% Сайт где это можно реализовать ниже. Вбиваете его или при оплате или в быстрой форме. [u]Я доволен! Ребёнок тоже будет! 149р портачены не зря![/u] [b]Всех с Наступающим![/b] Источник: https://myhappy2020.ru/ [url=https://myhappy2020.ru/]Новогодняя сказка каждому [/url] https://youtu.be/TGInTqW2uj4 [url=https://youtu.be/TGInTqW2uj4]Промо видео [/url] [youtube]TGInTqW2uj4[/youtube]

ArthurHap December 26, 2019 5:53:38 AM

When organizing Inside renovators New York or General building New York, experienced professionals as well as tested property products are preferred. Yet our experts are being actually talked to certainly not simply for these explanations. Along with each customer of the business we develop one of the most trustworthy connections, with the help of the observing features: Preliminary budgeting and miscalculation of the expense of repairing an apartment or condo; Sending out routine documents on the progress of repair work; Interior makeovers, General construction-- services that are actually offered through a lot of organizations in Manhattan. Yet our business remains the market forerunner for several years. On our account, a large lot of instances of collaboration with both people and legal entities. [url=https://grandeurhillsgroup.com/]Interior renovators[/url]; Covering the amount of preferred costs of building components; The manufacture of attractive components and also furnishings for an individual layout that can easily transform any sort of space.

СontractorAnevA January 6, 2020 1:00:37 AM

Здравствуйте, хотела бы спросить кто как и где отдыхает? Собираемся с друзьями на отдых и увидели [url=https://expert.ru/2016/02/1/zamki-germanii-kuda-stoit-poehat-kazhdomu-iskatelyu-priklyuchenij/]здесь[/url] рекомендации для туристов. Вобщем-то предпочитаем отправиться к морю в Европу например в Грецию, Турцию или Болгарию. Посоветуйте где на данный момент лучше провести отдых?

Arinacymboda January 15, 2020 10:33:53 PM

Leave a Comment