どーも、みつおです。
プロジェクトオイラーっていう数学の問題をプログラムで解くサイトがあるんだけど、これがめちゃくちゃ難しい。
ただ、解けたときの爽快感が凄い。ってことでちょくちょく解けた問題を投稿していこうと思う。
問題
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