【问题标题】:time limited in SPOJ(i.e. 2. Prime Generator) with scala在 SPOJ(即 2. Prime Generator)中使用 scala 有时间限制
【发布时间】:2015-07-26 07:46:22
【问题描述】:

我正在尝试使用 scala 解决 SPOJ 中的问题(素数生成器)。但它提醒我“时间有限”。有谁知道这是为什么?

以下是我的代码。

var testCaseNumber = readInt()

for (index <- 1 to testCaseNumber) {
  val range: Array[String] = readLine().split(" ")

  (math.max(range(0).toInt, 2) to range(1).toInt).filter(num => {
    var flag = true
    for (element <- 2 to math.sqrt(num).toInt) {
      if (num % element == 0) {
        flag = false
      }
    }
    flag
  }).foreach(println)

  println("")
}

【问题讨论】:

    标签: scala


    【解决方案1】:

    对不起,但与 scala 无关。你的算法太慢了。

    eratosthenes 分段筛是您的朋友。

    https://turjachaudhuri.wordpress.com/2013/12/14/spoj-prime-1-segmented-sieve-of-eratosthenes/

    【讨论】:

      猜你喜欢
      • 2011-01-05
      • 1970-01-01
      • 2016-04-07
      • 1970-01-01
      • 2016-10-29
      • 1970-01-01
      • 2015-03-26
      • 2018-02-11
      • 1970-01-01
      相关资源
      最近更新 更多