// P40 (**) Goldbach's conjecture. // Goldbach's conjecture says that every positive even number greater than 2 // is the sum of two prime numbers. E.g. 28 = 5 + 23. It is one of the // most famous facts in number theory that has not been proved to be correct // in the general case. It has been numerically confirmed up to very large // numbers (much larger than Scala's Int can represent). Write a function // to find the two prime numbers that sum up to a given even integer. // // scala> 28.goldbach // res0: (Int, Int) = (5,23) class S99Int(val start: Int) { def goldbach: (Int,Int) = primes takeWhile { _ < start } find { p => (start - p).isPrime } match { case None => throw new IllegalArgumentException case Some(p1) => (p1, start - p1) } }