这个代码怎么看呀,感觉逻辑好强

img


这一题底下的while类型感觉好复杂,i++是怎么用的,希望指点一二

就是普通的循环,和自增,很简单的,在循环中,我们首先检查输入的整数是否大于等于 3,如果不是,则要求用户重新输入。然后我们使用一个循环来找出 x 的所有质因数,并将其输出。在循环内部,我们不断地尝试将 x 除以 i,如果 i 是 x 的因数,则将其输出,并将 x 更新为 x/i;否则,我们将 i 加一,继续尝试下一个因数。最后,如果 x 不等于 1,说明 x 是一个大于 2 的质数,我们将其输出

将一个数x拆解成几个质数因子相乘,每个因子不小于2。
如x是18,那么就拆成2x3x3
如x是21,那么就拆成3x7

  • 帮你找了个相似的问题, 你可以看下: https://ask.csdn.net/questions/7551056
  • 这篇博客也不错, 你可以看下i++在两个线程执行100次,最终的结果是
  • 除此之外, 这篇博客: 自加与自减,你还在疑惑 ++i++i++i 这样的问题吗?中的 自加++ 自减-- 操作符 部分也许能够解决你的问题, 你可以仔细阅读以下内容或跳转源博客中阅读:
  • 前置++ 先自加,再使用; 后置++ 先使用,再自加

    后置++的 反汇编解释:
    image

    在有变量使用的时候,就直接给变量使用,在该变量使用完之后,再自加

    但是如果没有变量使用,后置++的变量就 直接自增:
    image

    所以这里的后置++ 要这样理解:先使用 的含义是 是否有变量使用,如果没有变量使用,则直接自加,如果有变量使用,则先给变量使用,然后自加

    所以在后面考虑后置和前置++时,没有根本区别,唯一的区别是否时候有变量要使用,如果有变量要使用,才会产生不同 在最常使用的 for 循环中,前置和后置++ 就没有任何区别

    这里也可以理解为:不论是前置 还是 后置,遇到该操作符,都是统一进行 自加/自减 操作,然后 前置是返回 自加/自减 之后的结果,后置 是返回 自加/自减 之前的结果

do while循环都是一步一步的判断,你根据输入的n的值一步一步去计算。
先进行do里面的循环,再进行while里面i是否小于x的判断,如果不满足就跳出循环,进行下一步的程序运行。