Project Euler: Problem 1 - 3か5の倍数になっている数字の合計
30分プログラム、その259。Project Eulerの問1を解いてみた。
10未満の自然数のうち、3もしくは5の倍数になっているものは 3,5,6,9の4つがあり、これらの合計は23になる。
同じようにして、1,000 未満の3か5の倍数になっている数字の合計を求めよ。
数式で解く場合は、3の倍数の和と5の倍数の和から15の倍数を引けばいい。これを計算するのに結構時間がかかった。15の倍数の最大値は900だと思い込んでいた・・・。
使い方
gosh> (f 10) 23 gosh> (f 1000) 233168
ソースコード
#! /opt/local/bin/gosh ;; -*- mode:scheme; coding:utf-8 -*- ;; ;; sum.scm - ;; ;; Copyright(C) 2008 by mzp ;; Author: MIZUNO Hiroki / mzpppp at gmail dot com ;; http://howdyworld.org ;; ;; Timestamp: 2008/03/05 22:57:03 ;; ;; This program is free software; you can redistribute it and/or ;; modify it under MIT Lincence. ;; (use srfi-1) (define (f) (apply + (filter (lambda (n) (or (= 0 (modulo n 3)) (= 0 (modulo n 5)))) (iota 1000))))