nsievebits.scala-2.scala

来自「JAVA 语言的函数式编程扩展」· SCALA 代码 · 共 46 行

SCALA
46
字号
/* The Computer Language Shootout   http://shootout.alioth.debian.org/   contributed by Isaac Gouy*/import scala.collection.mutable.BitSetobject nsievebits {    def nsieve(m: int) = {      val notPrime = new BitSet(m+1)      notPrime += 1      var i = 2      while (i <= m){         if (!notPrime.contains(i)){            var k = i+i            while (k <= m){ notPrime += k; k = k+i }         }         i = i+1      }      m - notPrime.size   }   def main(args: Array[String]) = {      def printPrimes(m: int) = {         def pad(i: int, width: int) = {            val s = i.toString            List.range(0, width - s.length)               .map((i) => " ") .foldLeft("")((a,b) => a+b) + s          }         Console.println("Primes up to " +  pad(m,8) + pad(nsieve(m),9))      }      val n = Integer.parseInt(args(0))      printPrimes( (1<<n  )*10000 )      printPrimes( (1<<n-1)*10000 )      printPrimes( (1<<n-2)*10000 )   } }

⌨️ 快捷键说明

复制代码Ctrl + C
搜索代码Ctrl + F
全屏模式F11
增大字号Ctrl + =
减小字号Ctrl + -
显示快捷键?