鱼C论坛

 找回密码
 立即注册
查看: 365|回复: 6

[已解决]课后题求助 答案有点不太懂

[复制链接]
发表于 2025-2-25 23:26:30 | 显示全部楼层 |阅读模式

马上注册,结交更多好友,享用更多功能^_^

您需要 登录 才可以下载或查看,没有账号?立即注册

x
第一张是题目 第二张是我目前能想到的办法 但是我这个第二个循环的语句不太会写还有n+1的这局写在哪也不太懂
最佳答案
2025-2-25 23:46:40
没想好123 发表于 2025-2-25 23:39
题目是找出10以内所有素数,如果不是素数,请打印出该合数对应的成绩公式
下面是我的代码

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

以下是修复后的代码:

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

  15.     i += 1  # 继续下一个数
复制代码
c95aa941cccb6454d8b69daeb474d60.png
641e286cb2e2407aec1819c326d6046.png
小甲鱼最新课程 -> https://ilovefishc.com
回复

使用道具 举报

发表于 2025-2-25 23:26:40 | 显示全部楼层
当然可以帮你!但是为了更好地理解和帮助你,请先将题目和你目前写的代码部分贴出来。这样我可以具体看看哪里需要调整。谢谢!

以上回复来自 FishC AI 小助理,如未能正确解答您的问题,请继续追问。
小甲鱼最新课程 -> https://ilovefishc.com
回复 支持 反对

使用道具 举报

发表于 2025-2-25 23:33:47 | 显示全部楼层
n 就是从 2 开始,判断能否被 i 整除嘛,比如 i 等于 4,n 等于 2,那么 4 % 2 == 0,则 i 等于 4 是合数,接着打印 4 = 2 * 2 出来~

PS,当前 AI 无法识别图片,需要直接提交代码来问它。
小甲鱼最新课程 -> https://ilovefishc.com
回复 支持 反对

使用道具 举报

 楼主| 发表于 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
               

小甲鱼最新课程 -> https://ilovefishc.com
回复 支持 反对

使用道具 举报

 楼主| 发表于 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
               
小甲鱼最新课程 -> https://ilovefishc.com
回复 支持 反对

使用道具 举报

发表于 2025-2-25 23:46:40 | 显示全部楼层    本楼为最佳答案   
没想好123 发表于 2025-2-25 23:39
题目是找出10以内所有素数,如果不是素数,请打印出该合数对应的成绩公式
下面是我的代码

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

以下是修复后的代码:

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

  15.     i += 1  # 继续下一个数
复制代码
小甲鱼最新课程 -> https://ilovefishc.com
回复 支持 反对

使用道具 举报

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

点个赞
小甲鱼最新课程 -> https://ilovefishc.com
回复 支持 反对

使用道具 举报

您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

小黑屋|手机版|Archiver|鱼C工作室 ( 粤ICP备18085999号-1 | 粤公网安备 44051102000585号)

GMT+8, 2025-5-13 00:06

Powered by Discuz! X3.4

© 2001-2023 Discuz! Team.

快速回复 返回顶部 返回列表