【发布时间】:2022-01-30 19:22:00
【问题描述】:
根据标题,我已经解决了以下 kata https://www.codewars.com/kata/5262119038c0985a5b00029f,这是我的解决方案:
let isPrime = (num) => {
for (let i = 2; i < num; i++)
if (num % i === 0)
return false;
return num > 1;
}
kata 描述如下:
定义一个函数,该函数接受一个整数参数并根据整数是否为素数返回逻辑值 true 或 false。
根据维基百科,素数(或素数)是大于 1 的自然数,除 1 和自身之外没有正除数。
要求 您可以假设您将获得一个整数输入。 你不能假设整数只会是正数。您也可能得到负数(或 0)。 关于性能的注意事项:不需要花哨的优化,但最简单的解决方案仍然可能会超时。数字最多为 2^31(或类似,取决于语言版本)。一直循环到 n 或 n/2 会太慢。
所以我的问题是,由于我的解决方案超时,我该如何改进它?谢谢!
【问题讨论】:
-
“一直循环到 n 或 n/2 会太慢。” 所以,你需要做一些研究并弄清楚如何改变你的循环。
-
在我看来你的
if循环体是空的——这是故意的吗? (编辑:这可能只是因为 textarea 弄乱了缩进) -
@user3386109 非常感谢!非常有帮助!你为什么认为我写了这篇文章?
-
你应该展示你的研究成果。实际上,您应该牢记 user3386109 的评论。他们实际上指出了可以改进并且您应该研究的部分......
-
我不明白你为什么会觉得这里不友善。我们都是在这里提供帮助的志愿者。我们相信,如果我们帮助您自助,我们会提供最大的帮助。第一条评论很好地表明了在哪里看。为什么不欣赏这一点,而不是回复 “你为什么认为我写了这篇文章”...