|
发表于 2020-6-10 08:13:47
|
显示全部楼层
本帖最后由 Twilight6 于 2020-6-10 08:53 编辑
质数是除了本身和1以外没有能整除它的数,所以你遍历用 range 循环整除 2~你哪个数即可,因为range是包含左边不包含右边的,所以 遍历除法范围是 2~ 被除数-1
你如果单纯的读取文件,可以不用带 + 号,+号是读写模式了~ open 默认是以 r 只读模式 所以可以直接 open 即可
第二个for 错误,整数不能进行迭代
还有错误,我们切割后的列表 是 d而不是 a
完整代码:
- f=open(r"C:/y.txt")
- a=f.read()
- f.close()
- d=a.split()
- prime = []
- for i in range(1,len(d)):
- c=int(d[i])
- for j in range(2,c):
- if c%j==0:
- break
- else:
- prime.append(c)
- print(max(prime))
复制代码
你的第二个 for 循环里的 if 条件是正确的 第二个if 条件实际上没有意义了,因为你只需要整除一次说明这个数就不是质数了
然后你只有打印 一个 p ,而且大小判断条件那里出错了,反而达不到效果了~,你应该加入个列表,然后使用 max 方法直接求出最大质数
|
|