想再做一个求质数的程序(之前虽然做过了),各位大佬帮忙看看有啥问题
a=2b=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: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)
else拼错了,还有else:之后要换行,然后求质数的方法不对 请问哪里没有问题? 本帖最后由 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: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)
你这个程序方向就错了啊……用这个代码吧,可以用。 给你改了一下,在楼上,可以用。 本帖最后由 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]