【问题标题】:Problem while trying to find prime numbers between 2 and 100尝试查找 2 到 100 之间的素数时出现问题
【发布时间】:2020-09-14 17:35:03
【问题描述】:

我无法找到我的短程序的问题,该程序旨在找到 2 到 100 之间的所有质数。我尝试多次重写程序;但是当我尝试运行它时,我的浏览器总是慢下来。任何帮助将不胜感激!

        function is_prime(x)
        {
            for (i = 2; i <= x / 2; ++i)
                if (x % i == 0) return false;
            return true;
        }

        for (i = 2; i < 100; ++i)
            if (is_prime(i)) console.log(i);

【问题讨论】:

  • 始终在for 循环和if 块的内容周围使用大括号,或者至少在您知道规则是什么之前。
  • 我建议查找更有效的素数算法,例如更快的 Eratosthenes 筛。
  • 阅读declaring variables in JavaScript。提示:在您的代码中,在函数内部和外部,在全局代码中使用相同的变量 i
  • 这能回答你的问题吗? How to find prime numbers between 0 - 100?

标签: javascript primes


【解决方案1】:

循环中的 i 未声明

 function is_prime(x)
        {
            for (let i = 2; i <= x / 2; ++i)
                if (x % i == 0) return false;
            return true;
        }

for (let i = 2; i < 100; ++i)
    if (is_prime(i)) console.log(i);

【讨论】:

    猜你喜欢
    • 2023-01-30
    • 2013-09-20
    • 2021-10-25
    • 2017-11-05
    • 1970-01-01
    • 1970-01-01
    • 2011-03-21
    • 2012-08-11
    相关资源
    最近更新 更多