def combinations
[T
](k
: Int, list
: List
[T
]) : List
[List
[T
]] = { if (k
<= 0 || k
> list.
length) { Nil
list.map(List(_))
combinations(k-1, xs).map(head :: _) ::: combinations(k, xs)
}
}
}
combinations: [T](Int,List[T])List[List[T]]
def isPrime
: Boolean
= { else !(2 to
(i-
1)).
exists(x
=> i
% x
== 0) }
def goldbach
: Option
[List
[Int
]] = { val primes
= (3 to i
).
filter(x
=> S99Int
(x
).
isPrime).
toList combinations(2, primes).find(_.foldLeft(0)((a,b) => a+b) == i)
}
}
i2S99: (Int)S99Int
def printGoldbachListLimited
(r
: Range, lowerBound
: Int
) = { r.
foreach(i
=> i.
goldbach match { case Some
(List
(a,b
)) if a
> lowerBound
=> println
("%d = %d + %d".
format(i,a,b
)) })
}
printGoldbachListLimited: (Range,Int)Unit
def printGoldbachList
(r
: Range
) = { printGoldbachListLimited(r, 0)
}
printGoldbachList: (Range)Unit
ZGVmIGNvbWJpbmF0aW9uc1tUXShrOiBJbnQsIGxpc3Q6IExpc3RbVF0pIDogTGlzdFtMaXN0W1RdXSA9IHsKICAgICAgICBsaXN0IG1hdGNoIHsKICAgICAgICAgIGNhc2UgTmlsID0+IE5pbAogICAgICAgICAgY2FzZSBoZWFkIDo6IHhzID0+CiAgICAgICAgICAgIGlmIChrIDw9IDAgfHwgayA+IGxpc3QubGVuZ3RoKSB7CiAgICAgICAgICAgICAgTmlsCiAgICAgICAgICAgIH0gZWxzZSBpZiAoayA9PSAxKSB7CiAgICAgICAgICAgICAgbGlzdC5tYXAoTGlzdChfKSkKICAgICAgICAgICAgfSBlbHNlIHsKICAgICAgICAgICAgICBjb21iaW5hdGlvbnMoay0xLCB4cykubWFwKGhlYWQgOjogXykgOjo6IGNvbWJpbmF0aW9ucyhrLCB4cykKICAgICAgICAgICAgfQogICAgICAgIH0KICAgICAgfQpjb21iaW5hdGlvbnM6IFtUXShJbnQsTGlzdFtUXSlMaXN0W0xpc3RbVF1dCiBjYXNlIGNsYXNzIFM5OUludCh2YWwgaTogSW50KSB7CiAgICAgCiAgICAgICAgZGVmIGlzUHJpbWUgOiBCb29sZWFuID0gewogICAgICAgICAgaWYgKGkgPD0gMSkgZmFsc2UKICAgICAgICAgIGVsc2UgaWYgKGkgPT0gMikgdHJ1ZQogICAgICAgICAgZWxzZSAhKDIgdG8gKGktMSkpLmV4aXN0cyh4ID0+IGkgJSB4ID09IDApCiAgICAgICAgfQogICAgIAogICAgICAgIGRlZiBnb2xkYmFjaCA6IE9wdGlvbltMaXN0W0ludF1dID0gewogICAgICAgICAgdmFsIHByaW1lcyA9ICgzIHRvIGkpLmZpbHRlcih4ID0+IFM5OUludCh4KS5pc1ByaW1lKS50b0xpc3QKICAgICAgICAgIGNvbWJpbmF0aW9ucygyLCBwcmltZXMpLmZpbmQoXy5mb2xkTGVmdCgwKSgoYSxiKSA9PiBhK2IpID09IGkpCiAgICAgICAgfQogICAgIAogICAgICB9CmRlZmluZWQgY2xhc3MgUzk5SW50CgppbXBsaWNpdCBkZWYgaTJTOTkoaTogSW50KSA6IFM5OUludCA9IG5ldyBTOTlJbnQoaSkKaTJTOTk6IChJbnQpUzk5SW50CmRlZiBwcmludEdvbGRiYWNoTGlzdExpbWl0ZWQocjogUmFuZ2UsIGxvd2VyQm91bmQ6IEludCkgPSB7CiAgICAgICAgci5mb3JlYWNoKGkgPT4gaS5nb2xkYmFjaCBtYXRjaCB7CiAgICAgICAgICBjYXNlIFNvbWUoTGlzdChhLGIpKSBpZiBhID4gbG93ZXJCb3VuZCA9PiBwcmludGxuKCIlZCA9ICVkICsgJWQiLmZvcm1hdChpLGEsYikpCiAgICAgICAgICBjYXNlIF8gPT4KICAgICAgIH0pCiAgICAgfQpwcmludEdvbGRiYWNoTGlzdExpbWl0ZWQ6IChSYW5nZSxJbnQpVW5pdAoKZGVmIHByaW50R29sZGJhY2hMaXN0KHI6IFJhbmdlKSA9IHsKICAgICAgICBwcmludEdvbGRiYWNoTGlzdExpbWl0ZWQociwgMCkKICAgICAgfQpwcmludEdvbGRiYWNoTGlzdDogKFJhbmdlKVVuaXQ=
Main.scala:1: error: expected class or object definition
def combinations[T](k: Int, list: List[T]) : List[List[T]] = {
^
Main.scala:14: error: expected class or object definition
combinations: [T](Int,List[T])List[List[T]]
^
Main.scala:29: error: expected class or object definition
defined class S99Int
^
Main.scala:31: error: expected start of definition
implicit def i2S99(i: Int) : S99Int = new S99Int(i)
^
Main.scala:32: error: expected class or object definition
i2S99: (Int)S99Int
^
Main.scala:33: error: expected class or object definition
def printGoldbachListLimited(r: Range, lowerBound: Int) = {
^
Main.scala:39: error: expected class or object definition
printGoldbachListLimited: (Range,Int)Unit
^
Main.scala:41: error: expected class or object definition
def printGoldbachList(r: Range) = {
^
Main.scala:44: error: expected class or object definition
printGoldbachList: (Range)Unit
^
9 errors found