nsievebits.scala-3.scala

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

SCALA
43
字号
/* The Computer Language Shootout   http://shootout.alioth.debian.org/   contributed by Isaac Gouy*/import scala.collection.mutable.BitSetobject nsievebits {    def nsieve(m: int) = {      val isPrime = new BitSet(m+1)      isPrime ++= Iterator.range(2,m+1)      for (val i <- Iterator.range(2,m+1)){         if (isPrime.contains(i)){            var k = i+i            while (k <= m){ isPrime -= k; k = k+i }         }      }      isPrime.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 + -
显示快捷键?