javascript - 为循环划定界限时出现问题。欧拉问题 5
问题描述
我有一个问题,我的代码有效,但如果它是一个更大的数字并且我不知道在哪里将限制放在我的 i 位置......我该如何优化这段代码,所以我不需要计算限制,而不是在我的 i 中放这么多零?或者没有办法,这是应该的?
function prob5(){
for(var i =1;i<10000000000;i++){
if((i%1)==0 && (i%2)==0 && (i%3)==0 && (i%4)==0 && (i%5)==0 && (i%6)==0 && (i%7)==0 && (i%8)==0 && (i%9)==0 && (i%10)==0 && (i%11)==0 && (i%12)==0 && (i%13)==0 && (i%14)==0 && (i%15)==0 && (i%16)==0 && (i%17)==0 && (i%18)==0 && (i%19)==0 && (i%20)==0) {
break;
}
}
console.log(i);
}
解决方案
function getLowestNumDivisibleByAllUpTo(limit) {
const numMax = factorial(limit);
for (let num = 1; num < numMax; num++) {
let divisibleByAll = true;
for (let divisor = 2; divisor <= limit; divisor++) {
if (num % divisor !== 0) {
divisibleByAll = false;
break;
}
}
if (divisibleByAll) {
return num;
}
}
}
function factorial(n) {
if (n < 2) return 1;
return n * factorial(n - 1);
}
console.log(getLowestNumDivisibleByAllUpTo(20));
推荐阅读
- user-interface - 编辑 UI 机器人框架
- cmake - 如何在 CMake 中使用 cpplint 代码样式检查?
- javascript - 等待 .then() 语句
- firebase - 来自带有 Facebook Auth 和 React Native 的 Firebase 的“回调 URL 不包含状态”错误
- jquery - Jquery Waypoints 未检测到视口
- java - 增加使用 Maven 构建时报告的 Javadoc 错误和警告的数量
- python-3.x - Beautifulsoup 用于循环和获取文本和 Href
- android - Android Studio 中的 xml 错误
- google-sheets - Google 表格:使用 QUERY 选择组内的前 N 个案例
- python - 'ManagementForm 数据丢失或被篡改'