标签: primes

递归函数导致堆栈溢出

我正在尝试编写一个简单的筛子函数来计算clojure中的素数.我已经看到了这个关于编写高效的筛分功能的问题,但我不是为了那点呢.现在我只想写一个非常简单(缓慢)的筛子.以下是我的想法:

(defn sieve [potentials primes]
  (if-let [p (first potentials)]
    (recur (filter #(not= (mod % p) 0) potentials) (conj primes p))
    primes))
Run Code Online (Sandbox Code Playgroud)

对于小范围,它工作正常,但导致堆栈溢出大范围:

user=> (sieve (range 2 30) [])
[2 3 5 7 11 13 17 19 23 29]
user=> (sieve (range 2 15000) [])
java.lang.StackOverflowError (NO_SOURCE_FILE:0)
Run Code Online (Sandbox Code Playgroud)

我认为通过使用recur这将是一个非堆栈消耗循环结构?我错过了什么?

recursion primes clojure lazy-evaluation lazy-sequences

38
推荐指数
1
解决办法
2161
查看次数

计算并打印第n个素数

我正在尝试计算素数,我已经完成了.但我想计算并打印第n个素数(用户输入),在计算其余部分(它们不会被打印)时,只打印第n个素数.

这是我到目前为止所写的内容:

import java.util.Scanner;
/**
 * Calculates the nth prime number
 * @author {Zyst}
 */
public class Prime {
    public static void main(String[] args) {

        Scanner input = new Scanner(System.in);
        int n, 
            i = 2, 
            x = 2;

        System.out.printf("This program calculates the nth Prime number\n");
        System.out.printf("Please enter the nth prime number you want to find: ");
        n = input.nextInt();

        for(i = 2, x = 2; i <= n; i++) {
            for(x = 2; x < i; x++) {
                if(i % …
Run Code Online (Sandbox Code Playgroud)

java primes

38
推荐指数
3
解决办法
9万
查看次数

找到给定数字后的素数

如何找到大于给定数字的最小素数?例如,给定4,我需要5; 给出7,我需要11.

我想知道有关最佳算法的一些想法.我想到的一种方法是通过Eratosthenes筛子生成素数,然后在给定数字后找到素数.

algorithm primes

37
推荐指数
3
解决办法
5万
查看次数

Python中的AKS Primes算法

几年前,证明了PRIMES在P中.是否有任何算法在Python中实现其素性测试?我想用一个天真的生成器运行一些基准测试,看看它有多快.我自己实现它,但是我还没有足够的理解这篇论文.

python algorithm primes

35
推荐指数
1
解决办法
2万
查看次数

斯威夫特在处理数字方面真的很慢吗?

当我正在玩一个快速的教程时,我开始编写一个自定义isPrime方法来检查给定Int是否为素数.

在写完之后,我意识到它工作正常,但发现它isPrime在某些相当大的数字上执行有点慢(当时仍然低得多Int.max).

所以我在objc中编写了相同的代码片段,代码执行得更快(66倍).

这是快速代码:

class Swift {
    class func isPrime(n:Int) -> Bool {
        let sqr : Int = Int(sqrt(Double(n))) + 1
        for i in 2...sqr {
            if n % i == 0 {
                return false
            }
        }
        return true;
    }
    class func primesInRange(start:Int, end:Int) -> Int[] {
        var primes:Int[] = Int[]()
        for n in start...end {
            if self.isPrime(n) {
                primes.append(n)
            }
        }
        return primes;
    }
}
Run Code Online (Sandbox Code Playgroud)

和objc代码:

@implementation Utils

+ …
Run Code Online (Sandbox Code Playgroud)

performance primes swift

35
推荐指数
2
解决办法
4691
查看次数

最快的素数测试算法

我需要在非常大的数字(在很长的范围内)之间的间隔上测试素数,所以我需要一些快速算法来检查数字是否为素数.请提出您的想法.

c++ algorithm math primes

34
推荐指数
6
解决办法
4万
查看次数

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万
查看次数

寻找素数的程序

我想找到介于0和长变量之间的素数,但我无法获得任何输出.

该计划是

using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;

namespace ConsoleApplication16
{
    class Program
    {
        void prime_num(long num)
        {
            bool isPrime = true;
            for (int i = 0; i <= num; i++)
            {
                for (int j = 2; j <= num; j++)
                {
                    if (i != j && i % j == 0)
                    {
                        isPrime = false;
                        break;
                    }
                }
                if (isPrime)
                {
                    Console.WriteLine ( "Prime:" + i );
                }
                isPrime = true;
            }
        }

        static void Main(string[] args) …
Run Code Online (Sandbox Code Playgroud)

.net c# primes sieve-of-eratosthenes

31
推荐指数
8
解决办法
12万
查看次数

是否有一个简单的算法可以确定X是否是素数,而不是混淆一个凡人的程序员?

我一直试图通过Project Euler工作,并注意到一些问题要求你确定一个素数作为其中的一部分.

  1. 我知道我可以将x除以2,3,4,5,...,X的平方根,如果我到达平方根,我可以(安全地)假设该数字是素数.不幸的是,这个解决方案似乎非常笨重.

  2. 我已经研究了如何确定数字是否为素数的更好的算法,但是快速混淆.

是否有一个简单的算法可以确定X是否是素数,而不是混淆一个凡人的程序员?

非常感谢!

algorithm primes

29
推荐指数
5
解决办法
1万
查看次数

Python Prime数字检查器

我一直试图编写一个程序,它将采用一个输入的数字,并检查它是否是素数.到目前为止,我所做的代码完全可以正常工作,如果这个数字实际上是素数.如果数字不是素数,那就很奇怪了.我想知道是否有人能告诉我代码的问题.

a=2
num=13
while num > a :
  if num%a==0 & a!=num:
    print('not prime')
    a=a+1
  else:
    print('prime')
    a=(num)+1
Run Code Online (Sandbox Code Playgroud)

当24被输入时给出的结果是:不是素数不是素数而不是素数

我如何修复每个偶数的每个奇数而不是素数的报告素数的错误

python primes

29
推荐指数
4
解决办法
24万
查看次数