鱼C论坛

 找回密码
 立即注册
查看: 2206|回复: 4

小激动--分享一个自己想到的质素算法

[复制链接]
发表于 2016-4-28 16:20:26 | 显示全部楼层 |阅读模式

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

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

x
可能对于各位大神这个是小case,不过对于我初初学习python的来说还是很激动的,这个过程本身就是很好的学习过程。
先看到了那个欧拉数学--计算200万以内所有质数和,于是就想了一个问题--怎么判断一个数是否是质数?
开始思路就是一路除除除。。。后来就是一半数来除除除
从开始连人家的几段代码都看不懂,后来找pyhton循环恶补。。。才知道break continue的妙用!
再后来想到 从2开始拿后面的数字一个一个除去2, 3,5,7这些剩下的质数来缩减列表的数字量。
弄了一个下午。。。终于搞出来了。
大家别介意,实在是兴奋了一把。

也想和大家学习python的朋友分享一个经验:为解决一个问题的努力过程是最好的学习过程!

最后附带代码:

  1. temp = input('请输入一个大于2的整数,我会告诉你2~整数之间的质数')
  2. temp = int(temp)
  3. lb = list(range(2,temp))
  4. j = 0    #质数序列号
  5. i = j+1  #内部序列号
  6. while j < len(lb):
  7.     while i < len(lb):
  8.         if lb[i] % lb[j] == 0:
  9.             print(lb[i],'不是质数')             # 调试代码可以删除
  10.             del lb[i]
  11.             print('这时候i= ',i,list(lb))       # 调试代码可以删除
  12.             continue
  13.         else:
  14.             i += 1
  15.         print('除以',lb[j],'最后的结果是:',lb)  # 调试代码可以删除
  16.     j += 1
  17.     i = j+1
  18.     print(j,len(lb))                            # 调试代码可以删除
  19. result = sum(lb)
  20. print('2~',temp,'之间的所有质数的和是',result)
复制代码

想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复

使用道具 举报

发表于 2016-4-28 20:42:11 | 显示全部楼层
可以看之前求100001个质数是什么,那些代码思路清晰
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复 支持 反对

使用道具 举报

发表于 2016-4-28 20:48:41 | 显示全部楼层
很用心的做,效果挺好,还有优化的余地。
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复 支持 反对

使用道具 举报

 楼主| 发表于 2016-4-28 21:48:46 From FishC Mobile | 显示全部楼层
冬雪雪冬 发表于 2016-4-28 20:48
很用心的做,效果挺好,还有优化的余地。

不知道是不是我电脑太差...2000000真没算出结果
真心感叹@小剑剑 那几行代码!实在太不可思议了!
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复 支持 反对

使用道具 举报

发表于 2016-4-29 16:40:40 | 显示全部楼层
加油加油
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复 支持 反对

使用道具 举报

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

本版积分规则

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

GMT+8, 2024-3-29 01:58

Powered by Discuz! X3.4

© 2001-2023 Discuz! Team.

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