找素数之-我逻辑真几把菜,自己把自己绕晕了

博客探讨了Python中for...else循环的特殊用法,用于判断质数。通过示例代码解释了如何在找到因子时跳出循环,并在未找到因子时打印质数。同时,博主尝试将此逻辑转换为JavaScript代码,经过几次尝试和错误,最终成功实现相同功能。文章强调了理解不同编程语言语法的重要性,并分享了学习过程中的思考和解决办法。
摘要由CSDN通过智能技术生成

起因是:在自学python,看到了for循环,发现了一个奇怪的语法
for… else 上代码

for num in range(10, 20):  # 迭代 10 到 20 之间的数字
    for i in range(2, num):  # 根据因子迭代
        if num % i == 0:  # 确定第一个因子
            j = num / i  # 计算第二个因子
            print('%d 等于 %d * %d' % (num, i, j))
            break  # 跳出当前循环
    else:  # 循环的 else 部分
        print(num, '是一个质数')

注意缩进: else对标的是for

在这里插入图片描述
换:(else 对标 if)

for num in range(10, 20):  # 迭代 10 到 20 之间的数字
    for i in range(2, num):  # 根据因子迭代
        if num % i == 0:  # 确定第一个因子
            j = num / i  # 计算第二个因子
            print('%d 等于 %d * %d' % (num, i, j))
            break  # 跳出当前循环
        else:  # 循环的 else 部分
            print(num, '是一个质数')

在这里插入图片描述
-----------------------------------------------------手动分割线----------------------------------------------------

对嘛 这样输出一大堆才是我熟悉的语法呢
然后不禁感叹 这个语法还是有作用的呢

然后 这个功能拿js该怎么写?

以下为各种错误示范

哎 丢人丢到家了

    for (i = 10; i < 20; i++) {
        for (var j = 2; j < i; j++) {
            if (i % j == 0) {
                console.log(i + '=' + j + '*' + i / j)
            } else {
                console.log(i + '是质数')
            }
        }
    }

在这里插入图片描述

????????
发生甚么事了? 我说怎么回事?
在这里插入图片描述
在我耗子尾汁之后 事情迎来了转机

    for (i = 10; i < 20; i++) {
        for (var j = 2; j < i; j++) {
            if (i % j == 0) {
                console.log(i + '=' + j + '*' + i / j)
                break
            } else {
                console.log(i + '是质数')
            }
        }
    }

哦 原来是没加break 那没事了 看结果
在这里插入图片描述
嗯~ 好起来了
==! 这个15是怎么回事
?????????????
TMD 再来

        for (i = 10; i < 20; i++) {
            for (var j = 2; j < i; j++) {
                if (i % j == 0) {
                    console.log(i + '=' + j + '*' + i / j)
                    bol = false
                    continue
                }else{
                    console.log(i + '是质数')
                    break
                }
            }

        }

在这里插入图片描述
不对 这里面跳出的地方不对
不对啊 根本不需要跳出啊,需要把循环走完,一旦有一个满足条件就不是素数
然后

        for (i = 10; i < 20; i++) {
            var bol = true
            for (var j = 2; j < i; j++) {
                if (i % j == 0) {
                    console.log(i + '=' + j + '*' + i / j)
                    bol = false
                    continue
                }
            }
            if (bol == true) {
                console.log(i + '是质数')
            }
        }

在这里插入图片描述
哎~ 好歹是完成了
虽然这里面还有能补充的,比如:寻找因子只需要达到其自身一半即可
无所谓了 好歹给自己一个交代了

如果你读到这 恭喜你浪费了人生十分钟的时间
哎 上学的时候学的东西都还给老师了
临近年关 脑子也转不动了 离谱

评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值