Project Euler : Problem 12 『Highly divisible triangular number』


TriangularTriangular / photobeyDE
projecteuler.net


問題

 約数の数が500個を超える最初の三角数は何か。


三角数

 三角数 - Wikipediaによると、並べたら三角形になるとかどうとか……。
要は、1+2+3+…みたいに最初っから足していく数の事。
求めるには、今まで何回か使ってきてる1からnまでの総和を求める式
\(S=\frac{n(n+1)}{2}\)
を使えばいい。


 あとは、総和の値を割りまくって約数を数えるだけ。


もっとやりようがあると思うけど

 いい方法が思いつきませんでした!

コード
using System;
using System.Diagnostics;

namespace Problem12
{
    class Program
    {
        static void Main(string[] args)
        {
            int i = 1;

            while (true)
            {
                Int64 n = i * (i + 1) / 2;

                int count = 0;
                Int64 d = n;

                for (Int64 p = 1; p < d; p++)
                {
                    if (n % p == 0)
                    {
                        d = n / p;
                        count += 2;
                    }
                }

                if (count > 500)
                {
                    Debug.WriteLine(n);
                    break;
                }

                i++;
            }
        }
    }
}
解答

 76576500



エーモン 三角停止板 国家公安委員会認定品(交F08-1) 6648

エーモン 三角停止板 国家公安委員会認定品(交F08-1) 6648