鱼C论坛

 找回密码
 立即注册
查看: 3876|回复: 9

[已解决]新手上路,求2到10的半质数个数为什么不行

[复制链接]
发表于 2017-7-29 08:09:10 | 显示全部楼层 |阅读模式

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

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

x
  1. n = 2
  2. o = 2
  3. m = 0
  4. p = 0
  5. for a in range (2,11):
  6.     while a > (n+1):
  7.         if a % n == 0:
  8.             m = m + 1
  9.             if a / n == n:
  10.                 m = m + 1
  11.         n = n + 1
  12.         if m == 2:
  13.             p = p + 1
  14.         n = o
  15.         m = 0
  16. print (p)
  17.    
复制代码
最佳答案
2017-7-29 10:55:33

你的思路不是很理解,我写了个,你参考下。
  1. #求出2-10的质数
  2. p = []
  3. for a in range (2,11):
  4.     for i in range (1,a+1):
  5.         if i == 1:
  6.             continue
  7.         if a != i and a % i == 0:
  8.             break
  9.         if i == a:
  10.             p.append(a)

  11. #从前面求出的质数求10以内的半质数
  12. result = []
  13. p2 = p[:]
  14. for h in p:
  15.     if h * h <=10:
  16.         result.append(h*h)
  17.     else:
  18.         break
  19.    
  20.     p2 = p2[1:]
  21.     for g in p2:
  22.         if h * g<=10:
  23.            result.append(h*g)
  24.         else:
  25.             break      
  26. print(p)
  27. result.sort()
  28. print(result)
复制代码
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复

使用道具 举报

发表于 2017-7-29 10:55:33 | 显示全部楼层    本楼为最佳答案   

你的思路不是很理解,我写了个,你参考下。
  1. #求出2-10的质数
  2. p = []
  3. for a in range (2,11):
  4.     for i in range (1,a+1):
  5.         if i == 1:
  6.             continue
  7.         if a != i and a % i == 0:
  8.             break
  9.         if i == a:
  10.             p.append(a)

  11. #从前面求出的质数求10以内的半质数
  12. result = []
  13. p2 = p[:]
  14. for h in p:
  15.     if h * h <=10:
  16.         result.append(h*h)
  17.     else:
  18.         break
  19.    
  20.     p2 = p2[1:]
  21.     for g in p2:
  22.         if h * g<=10:
  23.            result.append(h*g)
  24.         else:
  25.             break      
  26. print(p)
  27. result.sort()
  28. print(result)
复制代码
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复 支持 反对

使用道具 举报

 楼主| 发表于 2017-7-29 11:56:23 | 显示全部楼层
ba21 发表于 2017-7-29 10:55
你的思路不是很理解,我写了个,你参考下。

我还没学到那么后面,但还是谢谢
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复 支持 反对

使用道具 举报

发表于 2017-7-29 12:02:53 | 显示全部楼层
hzxwonder 发表于 2017-7-29 11:56
我还没学到那么后面,但还是谢谢

列表都还没有学????
跟你的代码比,就多了个列表
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复 支持 反对

使用道具 举报

 楼主| 发表于 2017-7-29 12:04:17 | 显示全部楼层
ba21 发表于 2017-7-29 12:02
列表都还没有学????
跟你的代码比,就多了个列表

我刚学习几天,而且每天只能学一课时(学业压力所迫)
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复 支持 反对

使用道具 举报

发表于 2017-7-29 12:57:42 | 显示全部楼层
hzxwonder 发表于 2017-7-29 12:04
我刚学习几天,而且每天只能学一课时(学业压力所迫)

不急,一步一个脚印来
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复 支持 反对

使用道具 举报

 楼主| 发表于 2017-7-29 13:03:32 | 显示全部楼层
ba21 发表于 2017-7-29 12:57
不急,一步一个脚印来

嗯,谢谢
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复 支持 反对

使用道具 举报

 楼主| 发表于 2019-6-23 20:35:42 | 显示全部楼层
ba21 发表于 2017-7-29 10:55
你的思路不是很理解,我写了个,你参考下。

我发现了一个更简单的算法,大佬帮我看一下可以吗?
  1. for i in range (2,1001):
  2.     a = 1
  3.     b = 0
  4.     while i >= a:
  5.         if i % a == 0 :
  6.             b = b+1
  7.         a = a+1
  8.     if b <= 2:
  9.         print(i,end='  ')
复制代码
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复 支持 反对

使用道具 举报

发表于 2019-6-24 18:14:10 | 显示全部楼层
hzxwonder 发表于 2019-6-23 20:35
我发现了一个更简单的算法,大佬帮我看一下可以吗?

运行没问题就是可以。
  看代码是直接把结果打印出来。
编程是灵活的,你觉得直接打印结果能满要求,那么就直接打印即可
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复 支持 反对

使用道具 举报

 楼主| 发表于 2019-6-24 21:08:56 | 显示全部楼层
ba21 发表于 2019-6-24 18:14
运行没问题就是可以。
  看代码是直接把结果打印出来。
编程是灵活的,你觉得直接打印结果能满要求,那 ...

好的,O(∩_∩)O谢谢
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复 支持 反对

使用道具 举报

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

本版积分规则

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

GMT+8, 2024-3-29 18:38

Powered by Discuz! X3.4

© 2001-2023 Discuz! Team.

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