鱼C论坛

 找回密码
 立即注册
查看: 1392|回复: 8

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

[复制链接]
发表于 2020-8-12 09:13:33 | 显示全部楼层 |阅读模式

马上注册,结交更多好友,享用更多功能^_^

您需要 登录 才可以下载或查看,没有账号?立即注册

x
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
        
最佳答案
2020-8-12 09:20:40
本帖最后由 yhhpf 于 2020-8-12 09:48 编辑

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


已经有其他人用合数的概念给你算质数的了,下面这个是按你思路,用最简单的循环求解的,你参考下:
  1. b = 1
  2. while b!=101:
  3.     b += 1
  4.     a = 2
  5.     while a != b:
  6.         if b % a == 0:
  7.             a = 2
  8.             break
  9.         a +=1
  10.     if a == b :
  11.         print(b)
复制代码
小甲鱼最新课程 -> https://ilovefishc.com
回复

使用道具 举报

发表于 2020-8-12 09:20:40 | 显示全部楼层    本楼为最佳答案   
本帖最后由 yhhpf 于 2020-8-12 09:48 编辑

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


已经有其他人用合数的概念给你算质数的了,下面这个是按你思路,用最简单的循环求解的,你参考下:
  1. b = 1
  2. while b!=101:
  3.     b += 1
  4.     a = 2
  5.     while a != b:
  6.         if b % a == 0:
  7.             a = 2
  8.             break
  9.         a +=1
  10.     if a == b :
  11.         print(b)
复制代码

点评

我很赞同!: 5.0
我很赞同!: 5
严重同意  发表于 2020-8-12 09:24
小甲鱼最新课程 -> https://ilovefishc.com
回复 支持 反对

使用道具 举报

发表于 2020-8-12 09:25:06 From FishC Mobile | 显示全部楼层
else拼错了,还有else:之后要换行,然后求质数的方法不对
小甲鱼最新课程 -> https://ilovefishc.com
回复 支持 反对

使用道具 举报

发表于 2020-8-12 09:31:08 | 显示全部楼层
请问哪里没有问题?
小甲鱼最新课程 -> https://ilovefishc.com
回复 支持 反对

使用道具 举报

发表于 2020-8-12 09:36:02 | 显示全部楼层
本帖最后由 baige 于 2020-8-12 09:39 编辑
  1. import math
  2. def prime(num):
  3.     if num==2:
  4.         return True
  5.     elif num<=1 or num%2==0:
  6.         return False
  7.     for i in range(3,int(math.sqrt(num))+1,2):
  8.         if(num%i==0):
  9.             return False
  10.     return True
  11.         

  12. for i in range(1,101):
  13.     if prime(i):
  14.         print(i)
复制代码
小甲鱼最新课程 -> https://ilovefishc.com
回复 支持 反对

使用道具 举报

发表于 2020-8-12 09:43:19 | 显示全部楼层
本帖最后由 求资专用 于 2020-8-12 09:44 编辑
  1. b=2
  2. print(2)
  3. while b!=101:
  4.     b+=1
  5.     flag=0
  6.     a=2

  7.     while a<b:
  8.         c=b%a
  9.         if c!=0:
  10.             a+=1
  11.         else:
  12.             flag=1
  13.             break

  14.     if flag ==0:
  15.         print(b)
复制代码



你这个程序方向就错了啊……用这个代码吧,可以用。
小甲鱼最新课程 -> https://ilovefishc.com
回复 支持 反对

使用道具 举报

发表于 2020-8-12 09:43:55 | 显示全部楼层
给你改了一下,在楼上,可以用。
小甲鱼最新课程 -> https://ilovefishc.com
回复 支持 反对

使用道具 举报

发表于 2020-8-12 09:44:11 | 显示全部楼层
本帖最后由 baige 于 2020-8-12 09:45 编辑
  1. import math
  2. def prime(num):
  3.     if num==2:
  4.         return True
  5.     elif num<=1 or num%2==0:
  6.         return False
  7.     for i in range(3,int(math.sqrt(num))+1,2):
  8.         if(num%i==0):
  9.             return False
  10.     return True
  11.         

  12. b=1
  13. while b!=100:
  14.     b+=1
  15.     if prime(b):
  16.         print (b)
复制代码
小甲鱼最新课程 -> https://ilovefishc.com
回复 支持 反对

使用道具 举报

您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

小黑屋|手机版|Archiver|鱼C工作室 ( 粤ICP备18085999号-1 | 粤公网安备 44051102000585号)

GMT+8, 2025-6-25 14:21

Powered by Discuz! X3.4

© 2001-2023 Discuz! Team.

快速回复 返回顶部 返回列表