C#でプロジェクトオイラーを解く(問題1「3と5の倍数」)

プロジェクトオイラー
Pocket

どーも、みつおです。

プロジェクトオイラーっていう数学の問題をプログラムで解くサイトがあるんだけど、これがめちゃくちゃ難しい。

ただ、解けたときの爽快感が凄い。ってことでちょくちょく解けた問題を投稿していこうと思う。

問題

10未満の自然数のうち, 3 もしくは 5 の倍数になっているものは 3, 5, 6, 9 の4つがあり, これらの合計は 23 になる.

同じようにして, 1000 未満の 3 か 5 の倍数になっている数字の合計を求めよ.

出典:Problem 1

解答

using System;
using System.Collections.Generic;
using System.Linq;

namespace Problem1
{
    class Program
    {
        static void Main(string[] args)
        {
            Console.WriteLine(Solve());
            Console.ReadLine();
        }

        static private int Solve()
        {
            int ret = 0;

            List<int> data = new List<int>();

            //1000未満のデータを作成
            for (int i = 0; i < 1000; i++) data.Add(i);

            //3または、5の倍数を抽出
            var tmpdata = data.FindAll(tmp => tmp % 3 == 0 || tmp % 5 == 0);

            //合計を算出
            ret = tmpdata.Sum();

            return ret;
        }
    }
}

 

出力

233168

コメント

タイトルとURLをコピーしました