123wwt321 发表于 2020-8-12 09:13:33

想再做一个求质数的程序(之前虽然做过了),各位大佬帮忙看看有啥问题

a=2
b=2
while b!=101:
    b+=1
    c=b%a
    if c==0:
      a+=1
    eles:print (b)
    if b==a:
      b+=1
      

yhhpf 发表于 2020-8-12 09:20:40

本帖最后由 yhhpf 于 2020-8-12 09:48 编辑

这个...逻辑上就没通吧...


已经有其他人用合数的概念给你算质数的了,下面这个是按你思路,用最简单的循环求解的,你参考下:
b = 1
while b!=101:
    b += 1
    a = 2
    while a != b:
      if b % a == 0:
            a = 2
            break
      a +=1
    if a == b :
      print(b)

baige 发表于 2020-8-12 09:25:06

else拼错了,还有else:之后要换行,然后求质数的方法不对

永恒的蓝色梦想 发表于 2020-8-12 09:31:08

请问哪里没有问题?

baige 发表于 2020-8-12 09:36:02

本帖最后由 baige 于 2020-8-12 09:39 编辑

import math
def prime(num):
    if num==2:
      return True
    elif num<=1 or num%2==0:
      return False
    for i in range(3,int(math.sqrt(num))+1,2):
      if(num%i==0):
            return False
    return True
      

for i in range(1,101):
    if prime(i):
      print(i)

求资专用 发表于 2020-8-12 09:43:19

本帖最后由 求资专用 于 2020-8-12 09:44 编辑

b=2
print(2)
while b!=101:
    b+=1
    flag=0
    a=2

    while a<b:
      c=b%a
      if c!=0:
            a+=1
      else:
            flag=1
            break

    if flag ==0:
      print(b)


你这个程序方向就错了啊……用这个代码吧,可以用。

求资专用 发表于 2020-8-12 09:43:55

给你改了一下,在楼上,可以用。

baige 发表于 2020-8-12 09:44:11

本帖最后由 baige 于 2020-8-12 09:45 编辑

import math
def prime(num):
    if num==2:
      return True
    elif num<=1 or num%2==0:
      return False
    for i in range(3,int(math.sqrt(num))+1,2):
      if(num%i==0):
            return False
    return True
      

b=1
while b!=100:
    b+=1
    if prime(b):
      print (b)
页: [1]
查看完整版本: 想再做一个求质数的程序(之前虽然做过了),各位大佬帮忙看看有啥问题