You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

如何编写程序遍历1-50数字,同时输出奇偶性与素数标识?

解决方案

我们需要调整代码逻辑,让每个数字都输出奇偶性,同时对素数额外标注。核心思路是为每个数字生成对应的描述字符串:先确定奇偶属性,再判断是否为素数并追加标识,最后统一输出。

修改后的完整代码

function isPrime(n) {
    if (n === 1) return false;
    // 优化素数判断:循环到平方根即可,减少不必要的计算
    for (let i = 2; i <= Math.sqrt(n); i++) {
        if (n % i === 0) return false;
    }
    return true;
}

const maxNum = 50;

for (let i = 1; i <= maxNum; i++) {
    let description = `${i} `;
    // 判断奇偶性
    const isEven = i % 2 === 0;
    description += isEven ? "偶数" : "奇数";
    
    // 若为素数,替换为包含素数标识的完整描述
    if (isPrime(i)) {
        description = `${i} 素数且${isEven ? "偶数" : "奇数"}`;
    }
    
    console.log(description);
}

代码说明

  • 素数判断优化:原函数循环到n-1,修改为循环到Math.sqrt(n)——因为如果n存在大于平方根的因数,必然对应一个小于平方根的因数,这样能大幅减少循环次数,提升效率。
  • 描述生成逻辑:
    1. 先初始化描述,带上当前数字;
    2. 判断奇偶性,追加“奇数”或“偶数”;
    3. 如果当前数字是素数,直接替换为包含“素数且X数”的完整描述,避免重复输出属性。
  • 特殊值适配:1会被正确识别为“奇数”,2会输出“2 素数且偶数”,完全匹配你给出的示例要求。

部分输出示例

1 奇数
2 素数且偶数
3 素数且奇数
4 偶数
5 素数且奇数
...
50 偶数

内容的提问来源于stack exchange,提问作者f2lpOliveira

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.08.25 18:09:23