開発部だより 第233回
新年度がスタートしました
今年も新入社員が入社し、研修が始まっております。
番人もいよいよ3年目、駿台のシステム部門として技術者として、また教育者として成長していかなければなりません
プログラミング力向上の一環として始めた「Project Euler」についてご紹介したいと思います
(問題1がネタバレとなりますがご了承ください。)
Project Eulerとは
数学やプログラミングなどに興味を持つ大人や学生が主な利用者であり、プログラミングによる一連の計算問題の解決を目的としたウェブサイトです
400以上の問題の他に毎週末毎に1問ずつ増えており、様々な難問が用意されているが、 一般的なスペックのパソコンで効率的なアルゴリズムを用いれば、いずれも1分未満で解けます。
今回はProblems 1を紹介いたします。
Problems 1
Multiples of 3 and 5
(原文)
If we list all the natural numbers below 10 that are multiples of 3 or 5, we get 3, 5, 6 and 9. The sum of these multiples is 23.
Find the sum of all the multiples of 3 or 5 below 1000.
(訳)
10未満の自然数で3または5の倍数は3,5,6,9です。これらの倍数の和は23になります。1,000未満で3または5の倍数の和を求めなさい。
数学的回答
自然数1〜999のうち3,5,15の倍数の個数は
3の倍数:999÷3=333 333個
5の倍数:999÷5=199.8 199個
5の倍数:999÷15=66.6 66個
よって求める解は

狽利用しなければ小中学生でも解ける問題です
VB で解いてみました
Public Function Prob1()
Dim i As Integer = 999
Dim s As Integer
Dim sf As Integer
While i > 0
If (i Mod 3 = 0) Or (i Mod 5 = 0) Then
System.Console.WriteLine(i)
s = i
sf = sf + s
End If
i = i - 1
End While
System.Console.WriteLine(vbCrLf & "Sum: " & sf)
Return 0
End Function
恒例の合同式の利用です
ほかにもいろいろなロジックが考えられますので皆様もチャレンジして下さい
数学であれプログラミングであれ公式や理論の本質を理解しなければ意味がありません
駿台予備学校では「学問の本質を学ぶ」という創立時からの教育方針のもと、小手先の受験テクニックではない「本物の学力」を養成します。
同様に私たちSATTもプログラミングの本質を学び、技術者として、教育者として皆様にシステムのご提案をさせていただいております。
ぜひ教育ICTのご相談はSATTにお任せください
S Sundai
A Advanced
T Teaching
T Technology
エスエイティー株式会社
http://satt.jp/
