python用while输出100以内的质数

qq_37887141 2018-10-17 10:05:34
求大佬帮忙解答下,完全不知道怎么写
我是初学者!!!!
...全文
7013 19 打赏 收藏 转发到动态 举报
写回复
用AI写文章
19 条回复
切换为时间正序
请发表友善的回复…
发表回复
weixin_52865430 2021-08-13
  • 打赏
  • 举报
回复 1

#100以内质数的while循环
i = 2
while i < 101:
j = 2
while j < i:
if i % j == 0:
break
else:
if j == i-1:
print(i)
j += 1
i += 1

weixin_52865430 2021-08-13
  • 举报
回复
@weixin_52865430 注意一下缩进,贴上来就成这样子了
Jocker.Dragon 2019-04-07
  • 打赏
  • 举报
回复
def shu(n):
if n==1:
return 1
if n==2:
return 2
for i in range(2,n):
if (n%i)==0:
return 0
else:
return n
list=[]
for i in range(2,101):
z=shu(i)
list.append(z)
s=sum(list)
print(s)
英雄@末路 2018-11-08
  • 打赏
  • 举报
回复

h = 0
leap = 1
from math import sqrt

for m in range(1,100):
k = int(sqrt(m + 1))
for i in range(2,k + 1):
if m % i == 0:
leap = 0
break
if leap == 1:
print ('%-4d' % m, end = '')
h += 1
if h % 10 == 0:
print ('')
leap = 1
print('')
print ('The total is %d' % h)
手无护鸡之力 2018-11-08
  • 打赏
  • 举报
回复
我看到了很多无用循环, i > n/2后根本不用除了,都除不尽了
码仔1号 2018-11-06
  • 打赏
  • 举报
回复
语法简化后:

result = [ x for x in range(2,101) if 0 not in [ x%y for y in range(2,x)]]
print (result)
码仔1号 2018-11-06
  • 打赏
  • 举报
回复
我前面那个缩进写错了一个。。。。。。。。
# encoding=utf-8
for x in range(2,101): # 依次拿出2-100的每个数字
y = 1
while y <= x: # 从1除到自己如果发现了除1和自己以外的除数立刻退出循环,如果循环正常结束则执行else语句
if x%y == 0 and y != 1 and y != x:
break
y += 1
else: # 循环没有break执行else
print(x)
x += 1
瞎编靠运气 2018-11-06
  • 打赏
  • 举报
回复
def printPrime(maxNumber):
"""
打印小于maxNumber的质数
"""
for n in primes():
if n < maxNumber:
print(n,end=",")
else:
break


def _odd_iter():
n=1
while True:
n=n+2
yield n

def _not_divisible(n):
return lambda x:x % n>0

def primes():
#素数不包括1,从2开始
yield 2
it=_odd_iter()
while True:
n=next(it)
yield n
it=filter(_not_divisible(n),it)


抄来的,惰性迭代过滤递归,优美。
码仔1号 2018-11-06
  • 打赏
  • 举报
回复

# encoding=utf-8
for x in range(2,101): # 依次拿出2-100的每个数字
y = 1
while y <= x: # 从1除到自己如果发现了除1和自己以外的除数立刻退出循环,如果循环正常结束则执行else语句
if x%y == 0 and y != 1 and y != x:
break
y += 1
else: # 循环没有break执行else
print(x)
x += 1


我个人认为,最简单的。。
码仔1号 2018-11-06
  • 打赏
  • 举报
回复
推荐2楼思路,其他人都是小题大做
瞎编靠运气 2018-11-06
  • 打赏
  • 举报
回复
廖雪峰教程里有个迭代过滤质数的例子,经典。可参考。
看着奢扣 2018-11-05
  • 打赏
  • 举报
回复 1

while True:
    print('2,3,5,7,11,13,17,19,23,29,31,37,41,43,47,53,59,61,67,71,73,79,83,89,97')
    break

  • 打赏
  • 举报
回复
from math import sqrt

n = 0
prime_list = [] # 质数列表

while n < 100:
n += 1
flag = True
if n == 1:
continue
else:
# 对正整数n,如果用2到根号n之间的所有整数去除,均无法整除,则n为质数
for i in range(2, int(sqrt(n)) + 1):
if n % i == 0:
flag = False
break
if flag:
prime_list.append(n)

print(prime_list)

zengzz 2018-10-25
  • 打赏
  • 举报
回复
num_list=[]
for i in range(2,101):
num_list = []
for j in range(1,i+1):
if(i%j==0):
num_list.append(j) //记录能被那些整除
if(len(num_list)==2): //质数只能被1和自己整除
print(num_list[1])
种树家 2018-10-19
  • 打赏
  • 举报
回复
for i in range(3,101,2): print(i)
欢乐的小猪 2018-10-18
  • 打赏
  • 举报
回复
定义就是只能被1和他自己整除的数吧。
for i in range(2,101):
ii=1
while ii<i:
if i%ii==0 and ii!=1 and ii!=i:
break
ii+=1
if ii==i:
print ("prime number:{}".format(i))
龙鹰心腹 2018-10-18
  • 打赏
  • 举报
回复

zhishu = []
n = 100
x = 2
while x in range(2,n):
y = 0
result = True
while y < len(zhishu):
s = x % zhishu[y]
if s == 0:
result = False
break
y += 1
if result:
zhishu.append(x)
x += 1
print(zhishu)
wxj524 2018-10-18
  • 打赏
  • 举报
回复
i = 1
while True:
if i > 100: break
x = 0 # 记录被整除的次数
for j in range(1, i):
if i % j == 0:
x += 1
if x <= 1: #i=1的话range(1, i)是空的,所以x=0, i大于1时,因为range(1, i)不包含i,只能被1整除,所以x=1。
print(i)
i += 1
qq_37887141 2018-10-17
  • 打赏
  • 举报
回复
顶下!!!!!!!!!!

37,720

社区成员

发帖
与我相关
我的任务
社区描述
JavaScript,VBScript,AngleScript,ActionScript,Shell,Perl,Ruby,Lua,Tcl,Scala,MaxScript 等脚本语言交流。
社区管理员
  • 脚本语言(Perl/Python)社区
  • IT.BOB
加入社区
  • 近7日
  • 近30日
  • 至今

试试用AI创作助手写篇文章吧