CSDN的C1考试,质数问题,一不小心就错失得分

2021年8月22号,怀着忐忑的心参数了CSDN的C1考试,为自己能顺利通过,真没想到却栽在了质数大题上。错失10分真的好可惜。

现在回顾一下这道题目。

题目要求:

1、生成2个1~100的随机整数。(是1~50 还是 1~100 有点记不清楚了)

2、打印出这2个整数的所有质数。

这道题主要是考查我们对质数、JS中Math中的相关方法的理解

第一:

什么是质数?

能被1及自身整除的数为质数

第二:

与本题相关的Math方法有哪些?

Math.random()  随机数生成方法

Math.floor()  生成的随机数按下取整。如50.62  结果为 50  ; -50.62  结果为 -51

Math.ceil()  生成的随机数按上取整。如50.62  结果为 51 ; -50.62  结果为 -50

讲真的这道题目真不难,考试时我的答案时:

var a1 = Math.floor(Math.random() * 100)
console.log("===="  + a1)

var a2 = Math.floor(Math.random() * 100)
console.log("===="  + a2)

if(a1 > a2){
    console.log(a1 + "大")
}

var arr1 = check(a1)
console.log(arr1)
var arr2 = check(a2)
console.log(arr2)
var arr = arr1.concat(arr2)
console.log(arr)

function check(obj) {
    var arr = []
    var count = 0
    for (var i = 2; i< obj; i++){

        for(var j = 2; j<=obj; j++){
            if(obj % j === 0){
                count++
            }
        }

        if(count === 2){
            arr.push(i)
        }

        count = 0
    }
    return arr
}

细心的同学肯定已经看出上面的问题了,

考试完毕后,我重新优化了一下:

var a1 = Math.floor(Math.random() * 100)
console.log("===="  + a1)

var a2 = Math.floor(Math.random() * 100)
console.log("===="  + a2)

if(a1 > a2){
    console.log(a1 + "大")
}

var arr1 = check(a1)
console.log(arr1)

var arr2 = check(a2)
console.log(arr2)

var arr = arr1.concat(arr2)
console.log(arr)

function check(obj) {
    var arr = []
    var count = 0
    for (var i = 2; i< obj; i++){
        if(t_check(i)){
            arr.push(i)
        }
    }
    return arr
}

function t_check(obj) {
for(var j = 2; j<obj; j++){
if(obj % j === 0){
return false
}
}
return true
}

上面是优化之后的代码。 

  • 0
    点赞
  • 4
    收藏
    觉得还不错? 一键收藏
  • 打赏
    打赏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

周周的JAVA技术栈

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值