こんなのもやってます(1) Project Euler編

上記ページを久々に眺めてみると我ながら「古っ・・!」と思ってしまいました。日々やることが増えていくのが当教室の良いところなのですが、かといってページを刷新するのも腰が引けてしまうので、何回かに分けて最近生徒さんが取り組んでいる内容について紹介していきたいと思います!

1回目はProject Euler(プロジェクト オイラー)です。

Leonhard Euler (1707-1783)
オイラー先生

Project Eulerとは、プログラミングで解く数学の問題が大量に載っているサイトで、日本語版はこちら
数学好きな生徒さんのために探してきたサイトです。
初めはScratchを使って解いていたのですが、処理する数が大きくなると動かなかったり、素数の実装をいちいち書かなければいけなかったりでさすがに厳しくなり、徐々にPythonに移行していきました。

Pythonは中学生でも理解しやすい言語でカリキュラムに取り入れたいと思っていたので、一石二鳥でした👍

問題によってはプログラム1行で解く「ワンライナー」に挑戦したり、私も一緒に楽しく取り組んでいます😀

以下は問題の一例です:

ちなみに上記の問題を1行で解くとこんな感じに。無理やり1行に収めるとかえって分かりづらいので、程々に・・

print(sum([int(''.join(p)) for p in itertools.permutations('0123456789') if all(int(''.join(p[i:i+3])) % d == 0 for i, d in enumerate([2, 3, 5, 7, 11, 13, 17], start=1))]))

コメントを残す

メールアドレスが公開されることはありません。