相关疑难解决方法(0)

如何找到0到100之间的素数?

在Javascript中我怎么能找到0到100之间的素数?我已经考虑过了,我不知道如何找到它们.我想做x%x,但我发现了明显的问题.这是我到目前为止所做的:但不幸的是,这是有史以来最糟糕的代码.

var prime = function (){
var num;
for (num = 0; num < 101; num++){
    if (num % 2 === 0){
        break;
    }
    else if (num % 3 === 0){
        break;
    }
    else if (num % 4=== 0){
        break;
    }
    else if (num % 5 === 0){
        break;
    }
    else if (num % 6 === 0){
        break;
    }
    else if (num % 7 === 0){
        break;
    }
    else if (num % 8 === 0){
        break;
    }
    else if (num …
Run Code Online (Sandbox Code Playgroud)

javascript math primes

51
推荐指数
6
解决办法
15万
查看次数

Python中的简单Prime生成器

请问有人请告诉我这段代码我做错了什么?无论如何,它只是打印'计数'.我只想要一个非常简单的素数发生器(没什么特别的).

import math

def main():
    count = 3
    one = 1
    while one == 1:
        for x in range(2, int(math.sqrt(count) + 1)):
            if count % x == 0: 
                continue
            if count % x != 0:
                print count

        count += 1
Run Code Online (Sandbox Code Playgroud)

python primes

33
推荐指数
7
解决办法
11万
查看次数

为什么这个主要测试如此缓慢?

此代码取自"Haskell之路逻辑,数学和编程"一书.它实现了eratosthenes算法的筛选并解决了Project Euler Problem 10.

sieve :: [Integer] -> [Integer]
sieve (0 : xs) = sieve xs
sieve (n : xs) = n : sieve (mark xs 1 n)
  where
    mark :: [Integer] -> Integer -> Integer -> [Integer]
    mark (y:ys) k m | k == m = 0 : (mark ys 1 m)
                    | otherwise = y : (mark ys (k+1) m)

primes :: [Integer]
primes = sieve [2..]

-- Project Euler #10
main = print $ sum $ takeWhile …
Run Code Online (Sandbox Code Playgroud)

primes haskell sieve-of-eratosthenes

10
推荐指数
3
解决办法
771
查看次数

Python- Eratosthenes-紧凑型Python的筛选

这是我使用Eratosthenes筛选寻找素数的代码.

list = [i for i in range(2, int(raw_input("Compute primes up to what number? "))+1)]  

for i in list:
    for a in list:
            if a!=i and a%i == 0:
                list.remove(a)
Run Code Online (Sandbox Code Playgroud)

试图找到一种方法将那些嵌套的循环压缩成某种生成器或理解,但似乎你不能使用理解将函数应用于列表.我尝试使用地图和过滤器,但我似乎无法做到正确.

想到这样的事情:

print map(list.remove(a), filter(lambda a, i: (a%i ==0 and a!=i), [(a, i) for i in list for a in list])
Run Code Online (Sandbox Code Playgroud)

显然不会有十几个原因.如果我只是使用该代码的过滤器部分:

filter(lambda a, i: (a%i ==0 and a!=i), **[(a, i) for i in list for a in list]**
Run Code Online (Sandbox Code Playgroud)

将两个变量放入lambda的正确方法是什么?(a,i)使它成为一个元组,但我想提交'a'和'i'作为自变量放入lambda.

我最终解决了这个问题:

print sorted(set([i for i in range(2, int(raw_input("Compute primes up …
Run Code Online (Sandbox Code Playgroud)

python algorithm performance primes

3
推荐指数
2
解决办法
8600
查看次数

最快的空间 - 用python查找素数

也许这是一个愚蠢的问题,但我想知道你是否可以提供最短的来源,用Python找到素数.我还想知道如何使用map()或filter()函数找到素数.谢谢 (:

编辑:当我说最快/最短时,我指的是字符/单词较少的方式.无论如何,不​​要考虑比赛:我想知道是否有可能是单线源,而不会删除总是与周期一起使用的缩进.编辑2:没有想到大问题的问题.我认为我们可以保持在一百万以下(范围(2,1000000)编辑3:最短,但仍然优雅.正如我在第一次编辑中所说,你不需要将变量的名称减少为单个字母.我只需要一个一线,优雅的来源.谢谢!

python primes

0
推荐指数
1
解决办法
1718
查看次数