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