萌新求教!求各位大佬帮忙解答
感谢各位大佬点进帖子!跟着小甲鱼的python视频学习了两天,自己尝试着写了一个求小于给出整数的所有质数列表的代码如下
def isprime(numb):
if numb % 2 == 0:
return 0
else:
count = 0
for i in prime:
if numb % i != 0:
count += 1
if count == len(prime):
return 1
else:
return 0
temp = int(input('范围(大于1的整数):'))
num = 1
prime =
while (num <= temp):
if isprime(num) == 1:
prime.append(num)
num = num+1
prime.remove(2)
print('质数:',prime)
print('数量:',len(prime))
但是不知道为什么这个代码跑不出来{:10_266:} 这样的话输出的结果prime列表里都只有这一个元素
但是如果把代码里的num(初始质数检测值)改成3就能正常输出结果了
百思不得其解不知道是为什么{:10_266:} 球球各位大佬帮忙解答了{:5_92:} 将 isprime 纯粹为一个判断函数,不要涉及外部全局的 prime 列表
def isprime(numb):
if numb <= 1:
return False
for i in range(2, int(numb ** 0.5) + 1):
if numb % i == 0:
return False
return True
temp = int(input('范围(大于1的整数):'))
num = 1
prime = []
while (num <= temp):
if isprime(num):
prime.append(num)
num = num + 1
print('质数:',prime)
print('数量:',len(prime))
qq1151985918 发表于 2021-10-10 00:43
将 isprime 纯粹为一个判断函数,不要涉及外部全局的 prime 列表
感谢感谢!我已经知道问题出在哪里了,prime里面有1之后isprime就一直会返回0了 本帖最后由 傻眼貓咪 于 2021-10-10 08:44 编辑
def prime(num):
return False if num<2 else True if num == 2 else all()
arr =
print(*arr) if arr else print("没有质数")输入任何整数:15
2 3 5 7 11 13
输入任何整数:-13
没有质数我的代码比较难理解,仅供参考,希望对你有帮助
(老师在课堂上所教导的都是基础,自己必须理解,活用,变化,才是真正学习之道)
页:
[1]