【问题标题】:Python prime numbers and prime factorsPython素数和素因数
【发布时间】:2016-02-10 19:22:48
【问题描述】:

我对 Python 和一般编程非常陌生。我正在尝试编写一个吐出大量素数的程序。我写了一个给我素数的代码,但是执行时间太长了:

for b in range("really large number"): if b%2!=0 and b%3!=0 and b%5!=0 and b%7!=0 or b==2 or b==3 or b==5 or b==7: print b

如果有人对如何加快速度有一些想法,请告诉我。另外,如果有人能指出我正确的方向,使用这些素数来找到相同的“非常大的数”的素数,我将不胜感激。 谢谢

【问题讨论】:

标签: python performance primes


【解决方案1】:

这应该适合你:

def print_factors(bigNo):
        for i in range(2, bigNo):
            while bigNo % i == 0:
                print i,
                bigNo /= i
            if bigNo <= 1:
                break

    print_factors(15) # 3 5
    print_factors(12345) # 3 5 823 

【讨论】:

  • 这段代码很好用。我正在尝试处理数千亿的数字。当我尝试运行它时得到killed 9
  • 也许尝试用 xrange 替换范围?如果它适合你,你也可以选择它作为答案
  • xrange 肯定会有所帮助,但我仍在努力加快速度。也许试图让它筛选素数而不是 2 和 n 之间的所有数字。所以我猜这就是我的下一个目标
猜你喜欢
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2015-07-21
  • 2023-03-31
  • 1970-01-01
  • 1970-01-01
相关资源
最近更新 更多