鱼C论坛

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

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

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

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

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

x
n = 2
o = 2
m = 0
p = 0
for a in range (2,11):
    while a > (n+1):
        if a % n == 0:
            m = m + 1
            if a / n == n:
                m = m + 1
        n = n + 1
        if m == 2:
            p = p + 1
        n = o
        m = 0
print (p) 
    
最佳答案
2017-7-29 10:55:33

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

#从前面求出的质数求10以内的半质数
result = []
p2 = p[:]
for h in p:
    if h * h <=10:
        result.append(h*h)
    else:
        break
    
    p2 = p2[1:]
    for g in p2:
        if h * g<=10:
           result.append(h*g)
        else:
            break      
print(p)
result.sort()
print(result)
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复

使用道具 举报

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

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

#从前面求出的质数求10以内的半质数
result = []
p2 = p[:]
for h in p:
    if h * h <=10:
        result.append(h*h)
    else:
        break
    
    p2 = p2[1:]
    for g in p2:
        if h * g<=10:
           result.append(h*g)
        else:
            break      
print(p)
result.sort()
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
你的思路不是很理解,我写了个,你参考下。

我发现了一个更简单的算法,大佬帮我看一下可以吗?
for i in range (2,1001):
    a = 1
    b = 0
    while i >= a:
        if i % a == 0 :
            b = b+1
        a = a+1
    if b <= 2:
        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, 2025-1-13 06:13

Powered by Discuz! X3.4

© 2001-2023 Discuz! Team.

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