hzxwonder 发表于 2017-7-29 08:09:10

新手上路,求2到10的半质数个数为什么不行

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)
   

ba21 发表于 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
    for g in p2:
      if h * g<=10:
         result.append(h*g)
      else:
            break      
print(p)
result.sort()
print(result)

hzxwonder 发表于 2017-7-29 11:56:23

ba21 发表于 2017-7-29 10:55
你的思路不是很理解,我写了个,你参考下。

我还没学到那么后面{:10_277:},但还是谢谢

ba21 发表于 2017-7-29 12:02:53

hzxwonder 发表于 2017-7-29 11:56
我还没学到那么后面,但还是谢谢

列表都还没有学????
跟你的代码比,就多了个列表

hzxwonder 发表于 2017-7-29 12:04:17

ba21 发表于 2017-7-29 12:02
列表都还没有学????
跟你的代码比,就多了个列表

我刚学习几天,而且每天只能学一课时(学业压力所迫){:10_277:}

ba21 发表于 2017-7-29 12:57:42

hzxwonder 发表于 2017-7-29 12:04
我刚学习几天,而且每天只能学一课时(学业压力所迫)

不急,一步一个脚印来

hzxwonder 发表于 2017-7-29 13:03:32

ba21 发表于 2017-7-29 12:57
不急,一步一个脚印来

嗯,谢谢

hzxwonder 发表于 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='')

ba21 发表于 2019-6-24 18:14:10

hzxwonder 发表于 2019-6-23 20:35
我发现了一个更简单的算法,大佬帮我看一下可以吗?

运行没问题就是可以。
看代码是直接把结果打印出来。
编程是灵活的,你觉得直接打印结果能满要求,那么就直接打印即可

hzxwonder 发表于 2019-6-24 21:08:56

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

好的,O(∩_∩)O谢谢
页: [1]
查看完整版本: 新手上路,求2到10的半质数个数为什么不行