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


Taxpayers may foot bill for mine rehabilitation after the mine's collapse in 2012. (The Canadian Press/John Woods) Lloyd said the company will not pay any costs related to the mine collapse. "The financial loss to the public of having to be responsible for this incident and to have to clean this up are two different things," he said. He said it took more than 18 months for the company to take responsibility for the mine's collapse that destroyed 40 per cent of the mine and killed 47 miners and six other crew members. "There was something really very wrong up there for quite some time, and it took a long time for me and the company to take charge," Lloyd said. "It was a huge responsibility for a lot of people. It's a tragedy, and we want to get the job done right." Some of the other witnesses interviewed by CBC were concerned the mine may have a long-term negative impact on the environment, especially nearby residents. Some local residents told CBC they've seen more than 10 cars overturned in years. A new $100,000 monument to the miners buried in a valley has turned up rocks and dust at the spot where workers had been buried after a recent collapse of a mine on an isolated section of the B.C. coast. [url=https://www.khangheshlaghi.com/]더킹카지노[/url] [url=https://www.gohappyclub.com/]온라인카지노[/url] Amp shares plunge to new low as shareholders miss earnings, shares fall (05-15-2015) A record low dividend yield on the shares of the world's largest maker of generators, General Electric Co (GE), will fuel concerns among analysts about the company's outlook for next year. Shares of the company fell more than 11% Monday to $17.43, the lowest in more than two weeks. GE's stock is down 18% in 2016 while its dividend yield is up 12.6% from March 2011, when its average yield was 2.7%. Investors who look ahead to 2017 will not be surprised by these results. GE stock has dropped 11% from an all-time high last October and its dividends continue to yield record low returns. GE stock has fallen 15% since its IPO in 2013, and it has lost over 50% of its value since then, when the company first went public in June 2014. Analysts say this year's dividend increase represents just a beginning for GE, as the company's business has slowed and the dividend payout ratio is dropping for the past seven quarters. As a result, GE now faces a much larger burden to meet its capital expenditures, including debt. There may be another major change to the company's plans for 2017 as the company continues to work on a long-term plan for generating electricity in the U.S. A report on Wednesday showed the company plans to retire more plants in its plants across the country by next year with about $100 billion in retirements planned by 2025. The company's latest forecast also said that it would spend $3 billion more on debt by 2018, down from $9 billion last year. Related: GE has less energy power than it thought GE shares, which have fallen roughly 60% from their record highs in December 2015 and January, have fallen 11% so far this year.

Vernonfurse May 26, 2020 4:09:14 PM

Заходите к нам в магазин и купайте сумочки, рюкзаки, косметички по самой низкой цене и с беспалтной доставкой [url=https://ukrion.com.ua/]ukrion.com.ua[/url]! Сколько стоит купить топ качество сумки в интернете Когда речь идет о стиле нельзя пренебрегать Хаксессуарами. Они расставляют акценты, тем самым помогая создать уместный гармоничный ваш образ. При этом особо тщательно следует отнестись к выбору косметички. Ведь она может не только довершить ансамбль, но и полностью испортить его. Поэтому, каждая девушка должна знать, как выбрать и где купить кошелек, чтобы она помогла создать не один стильный образ. Если нужна косметичка, купить её не составит труда. Слева есть блок критериев, которые помогут вам выбрать аксессуар. Вам всего лишь необходимо задать тип, материал и цвет изделия, а система в свою очередь предложит вам подходящие варианты. Также, не забудьте указать пол. Если вы точно знаете, чего хотите - вы можете воспользоваться поиском. Все, что от вас требуется - ввести ключевые слова, которые характеризуют конкретный вариант. Например, купить недорого сумку или Как купить сумку. [url=https://ukrion.com.ua/katalog]Интернет магазин сумок, кошельков, рюкзаков с Бесплатной доставкой по Украине[/url] [url=https://ukrion.com.ua/katalog/ryukzaki]Купить Рюкзак с Бесплатной доставкой по Украине Рюкзак недорого[/url] [url=https://ukrion.com.ua/katalog/koshelki-kosmetichki]Купить Кошелек с Бесплатной доставкой по Украине Женский кошелек недорого[/url] [url=https://ukrion.com.ua/katalog/melkaya-galantereya]Купить мелкую галантерею с Бесплатной доставкой по Украине[/url] [url=https://ukrion.com.ua/katalog/sumki]Купить Сумки с Бесплатной доставкой по Украине Сумки недорого[/url] [url=https://ukrion.com.ua/katalog/sumki/zhenskie-kozhanye-sumki]Купить натуральные кожаные сумки с Бесплатной доставкой по Украине[/url] [url=https://ukrion.com.ua/katalog/sumki/zhenskie-tekstilnye-sumki]Купить текстильную сумку с Бесплатной доставкой по Украине[/url] [url=https://ukrion.com.ua/katalog/sumki/zhenskie-steganye-sumki]Купить стеганые сумку с Бесплатной доставкой по Украине[/url] [url=https://ukrion.com.ua/katalog/sumki/zhenskie-kombinirovannye-sumki]Купить комбинированные сумки с Бесплатной доставкой по Украине[/url]

leristoeas May 28, 2020 7:55:40 PM

Заходите к нам в магазин и купайте сумочки, рюкзаки, косметички по самой низкой цене и с беспалтной доставкой [url=https://ukrion.com.ua/]ukrion.com.ua[/url]! цена сумку недорого в интернете Когда речь идет о стиле нельзя пренебрегать Хаксессуарами. Они расставляют акценты, тем самым помогая создать уместный гармоничный образ. При этом особо тщательно следует отнестись к выбору кошелька. Ведь она может не только довершить ансамбль, но и полностью испортить его. Поэтому, каждая девушка должна знать, как выбрать и где купить топ качество сумки, чтобы она помогла создать не один стильный образ. Если нужна рюкзак, купить её не составит труда. Слева есть блок критериев, которые помогут вам выбрать аксессуар. Вам всего лишь необходимо задать тип, материал и цвет изделия, а система в свою очередь предложит вам подходящие варианты. Также, не забудьте указать пол. Если вы точно знаете, чего хотите - вы можете воспользоваться поиском. Все, что от вас требуется - ввести ключевые слова, которые характеризуют конкретный вариант. Например, Сколько стоит купить сумку недорого или купить у нас косметиччку. [url=https://ukrion.com.ua/katalog]Интернет магазин сумок, кошельков, рюкзаков с Бесплатной доставкой по Украине[/url] [url=https://ukrion.com.ua/katalog/ryukzaki]Купить Рюкзак с Бесплатной доставкой по Украине Рюкзак недорого[/url] [url=https://ukrion.com.ua/katalog/koshelki-kosmetichki]Купить Кошелек с Бесплатной доставкой по Украине Женский кошелек недорого[/url] [url=https://ukrion.com.ua/katalog/melkaya-galantereya]Купить мелкую галантерею с Бесплатной доставкой по Украине[/url] [url=https://ukrion.com.ua/katalog/sumki]Купить Сумки с Бесплатной доставкой по Украине Сумки недорого[/url] [url=https://ukrion.com.ua/katalog/sumki/zhenskie-kozhanye-sumki]Купить натуральные кожаные сумки с Бесплатной доставкой по Украине[/url] [url=https://ukrion.com.ua/katalog/sumki/zhenskie-tekstilnye-sumki]Купить текстильную сумку с Бесплатной доставкой по Украине[/url] [url=https://ukrion.com.ua/katalog/sumki/zhenskie-steganye-sumki]Купить стеганые сумку с Бесплатной доставкой по Украине[/url] [url=https://ukrion.com.ua/katalog/sumki/zhenskie-kombinirovannye-sumki]Купить комбинированные сумки с Бесплатной доставкой по Украине[/url]

leristoeas May 28, 2020 11:27:03 PM

Заходите к нам в магазин и купайте сумочки, рюкзаки, косметички по самой низкой цене и с беспалтной доставкой [url=https://ukrion.com.ua/]ukrion.com.ua[/url]! купить недорого сумку недорого в интернете Когда речь идет о стиле нельзя пренебрегать Хаксессуарами. Они расставляют акценты, тем самым помогая создать уместный гармоничный образ. При этом особо тщательно следует отнестись к выбору кожаной сумки. Ведь она может не только довершить ансамбль, но и полностью испортить его. Поэтому, каждая девушка должна знать, как выбрать и где купить кошелек, чтобы она помогла создать не один стильный образ. Если нужна рюкзак, купить её не составит труда. Слева есть блок критериев, которые помогут вам выбрать аксессуар. Вам всего лишь необходимо задать тип, материал и цвет изделия, а система в свою очередь предложит вам подходящие варианты. Также, не забудьте указать пол. Если вы точно знаете, чего хотите - вы можете воспользоваться поиском. Все, что от вас требуется - ввести ключевые слова, которые характеризуют конкретный вариант. Например, купит рюкзак или Как купить сумку. [url=https://ukrion.com.ua/katalog]Интернет магазин сумок, кошельков, рюкзаков с Бесплатной доставкой по Украине[/url] [url=https://ukrion.com.ua/katalog/ryukzaki]Купить Рюкзак с Бесплатной доставкой по Украине Рюкзак недорого[/url] [url=https://ukrion.com.ua/katalog/koshelki-kosmetichki]Купить Кошелек с Бесплатной доставкой по Украине Женский кошелек недорого[/url] [url=https://ukrion.com.ua/katalog/melkaya-galantereya]Купить мелкую галантерею с Бесплатной доставкой по Украине[/url] [url=https://ukrion.com.ua/katalog/sumki]Купить Сумки с Бесплатной доставкой по Украине Сумки недорого[/url] [url=https://ukrion.com.ua/katalog/sumki/zhenskie-kozhanye-sumki]Купить натуральные кожаные сумки с Бесплатной доставкой по Украине[/url] [url=https://ukrion.com.ua/katalog/sumki/zhenskie-tekstilnye-sumki]Купить текстильную сумку с Бесплатной доставкой по Украине[/url] [url=https://ukrion.com.ua/katalog/sumki/zhenskie-steganye-sumki]Купить стеганые сумку с Бесплатной доставкой по Украине[/url] [url=https://ukrion.com.ua/katalog/sumki/zhenskie-kombinirovannye-sumki]Купить комбинированные сумки с Бесплатной доставкой по Украине[/url]

leristoeas May 29, 2020 3:02:45 AM

Leave a Comment