Problem 10
えぇーい、力技じゃい。問題を解く場合にはコンピュータが頑張らなければいけないのであって、人間は頑張ってはいけないのだ!(意味が違う)
object Problem10 { def natural = new Iterator[Int] { var num = 1 def hasNext : Boolean = true def next : Int = { num += 1 num } } def primes = new Iterator[Int] { var p : Iterator[Int] = natural def hasNext : Boolean = true def next : Int = { var t : Int = p.next p = p.filter((n:Int) => n%t != 0) t } } def main(args:Array[String]) : Unit = { var sum = 0 var c = 0 for ( p <- primes ) { if ( p < 2000000 ) sum += p else { println("result: "+sum) return () } c+=1 if (c%10000 == 0) println("now: "+p) } } }
今度こそ止まらないね。