没想好123 发表于 2025-2-25 23:26:30

课后题求助 答案有点不太懂

第一张是题目 第二张是我目前能想到的办法 但是我这个第二个循环的语句不太会写还有n+1的这局写在哪也不太懂

FishC 发表于 2025-2-25 23:26:40

当然可以帮你!但是为了更好地理解和帮助你,请先将题目和你目前写的代码部分贴出来。这样我可以具体看看哪里需要调整。谢谢!

以上回复来自 FishC AI 小助理,如未能正确解答您的问题,请继续追问。

小甲鱼的二师兄 发表于 2025-2-25 23:33:47

n 就是从 2 开始,判断能否被 i 整除嘛,比如 i 等于 4,n 等于 2,那么 4 % 2 == 0,则 i 等于 4 是合数,接着打印 4 = 2 * 2 出来~

PS,当前 AI 无法识别图片,需要直接提交代码来问它。

没想好123 发表于 2025-2-25 23:38:44

小甲鱼的二师兄 发表于 2025-2-25 23:33
n 就是从 2 开始,判断能否被 i 整除嘛,比如 i 等于 4,n 等于 2,那么 4 % 2 == 0,则 i 等于 4 是合数, ...

题目是找出10以内所有素数,如果不是素数,请打印出该合数对应的成绩公式
下面是我的代码

i = 2
while i < 10:
   n = 2
   while n < 10:
          if i%n == 0:
               print(i,'=',n,'*',i//n)
               break
          else:
               print(i,"是一个素数")
          n += 1
   i += 1
               

没想好123 发表于 2025-2-25 23:39:15

小甲鱼的二师兄 发表于 2025-2-25 23:33
n 就是从 2 开始,判断能否被 i 整除嘛,比如 i 等于 4,n 等于 2,那么 4 % 2 == 0,则 i 等于 4 是合数, ...

题目是找出10以内所有素数,如果不是素数,请打印出该合数对应的成绩公式
下面是我的代码

i = 2
while i < 10:
   n = 2
   while n < 10:
          if i%n == 0:
               print(i,'=',n,'*',i//n)
               break
          else:
               print(i,"是一个素数")
          n += 1
   i += 1
               

小甲鱼的二师兄 发表于 2025-2-25 23:46:40

没想好123 发表于 2025-2-25 23:39
题目是找出10以内所有素数,如果不是素数,请打印出该合数对应的成绩公式
下面是我的代码



你的代码在每次除以 n 不能整除时都会立即打印 i 是一个素数,但它可能在后面会被其他 n 整除。

以下是修复后的代码:

i = 2# 从 2 开始
while i < 10:
    n = 2
    is_prime = True# 假设当前数 i 是素数
   
    while n < i:
      if i % n == 0:
            print(i, "=", n, "*", i // n)# 只打印第一组因子
            is_prime = False# 发现因子,标记为合数
            break# 退出循环
      n += 1
   
    if is_prime:
      print(i, "是一个素数")

    i += 1# 继续下一个数

小时了 发表于 2025-2-26 16:25:35

没想好123 发表于 2025-2-25 23:39
题目是找出10以内所有素数,如果不是素数,请打印出该合数对应的成绩公式
下面是我的代码



点个赞
页: [1]
查看完整版本: 课后题求助 答案有点不太懂