JavaScript 质数判断代码

// 获取用户输入
var num = parseInt(prompt("请输入一个大于1的整数"));

// 验证输入合法性
if (num <= 1) {
    alert("输入的数字必须大于1");
} else {
    // 初始化状态变量
    var flag = true; // 假设默认是质数
    
    // 试除法核心逻辑
    for (var i = 2; i < num; i++) { // 遍历2到num-1
        if (num % i === 0) {       // 发现因数
            flag = false;          // 标记为非质数
            break;                 // 终止循环
        }
    }
    
    // 输出判断结果
    if (flag) {
        alert(num + " 是质数!!!");
    } else {
        alert(num + " 不是质数");
    }
}

代码解析与优化说明:

1. 变量声明与初始化
– 使用 var flag = true 保存状态,符合函数式编程中状态管理的最佳实践
– 通过 parseInt 强制类型转换确保输入为数字类型,避免字符串比较错误

2. 输入验证逻辑
– 显式检查 num <= 1 的边界条件,防止非法输入(如负数、0、1)
– 采用 alert 提供即时反馈,提升用户交互体验

3. 质数判断算法优化
– 内层循环范围 i < num 保持基础实现逻辑,适合教学场景
– 使用 break 提前终止无效循环,时间复杂度优化至 O(n)
– 严格相等运算符 === 避免类型转换带来的潜在错误

4. 结果输出逻辑
– 通过 flag 状态变量实现单次条件判断,符合布尔逻辑设计规范
– 保留用户原始的感叹号表达式,增强教学示例的直观性

性能改进建议(扩展学习):
– 可将内层循环上限改为 Math.sqrt(num),利用数学原理减少迭代次数
– 对于批量判断场景,可使用埃拉托斯特尼筛法预计算质数表
– 大数判断时可加入偶数快速过滤(num % 2 === 0)和 6k±1 优化

典型测试用例:

输入预期输出说明
2是质数!!!最小质数
1输入的数字必须大于1边界条件验证
9不是质数合数测试
13是质数!!!奇数质数验证
100不是质数范围上限测试

此实现平衡了代码可读性与执行效率,既适合初学者理解质数判断的基本原理,也为后续算法优化预留了改进空间。

© 版权声明
THE END
喜欢就支持一下吧
点赞8 分享
评论 抢沙发

请登录后发表评论

    暂无评论内容