相关疑难解决方法(0)

最优雅的方式来生成素数

实现此功能的最佳方式是什么:

ArrayList generatePrimes(int n)
Run Code Online (Sandbox Code Playgroud)

此函数生成第一个n素数(编辑:where n>1),因此generatePrimes(5)将返回ArrayListwith {2, 3, 5, 7, 11}.(我在C#中这样做,但我很高兴Java实现 - 或任何其他类似的语言(所以不是Haskell)).

我知道怎么写这个函数,但是当我昨晚做到这一点时,它并没有像我希望的那样结束.这是我想出的:

ArrayList generatePrimes(int toGenerate)
{
    ArrayList primes = new ArrayList();
    primes.Add(2);
    primes.Add(3);
    while (primes.Count < toGenerate)
    {
        int nextPrime = (int)(primes[primes.Count - 1]) + 2;
        while (true)
        {
            bool isPrime = true;
            foreach (int n in primes)
            {
                if (nextPrime % n == 0)
                {
                    isPrime = false;
                    break;
                }
            }
            if (isPrime)
            {
                break;
            }
            else
            {
                nextPrime …
Run Code Online (Sandbox Code Playgroud)

c# java algorithm primes

81
推荐指数
7
解决办法
6万
查看次数

找到不到200万的所有素数之和需要多长时间?

我试图解决这个项目欧拉问题.我实现了euler的筛子作为java中的帮助类.它适用于小数字.但是,当我输入200万作为限制时,它不会返回答案.我使用Netbeans IDE.我等了很多个小时一次,但仍然没有打印答案.当我停止运行代码时,它给出了以下结果

Java结果:2147483647
BUILD SUCCESSFUL(总时间:2,097分43秒)

这个答案是不正确的.即使等了这么多时间,这也是不正确的.虽然相同的代码返回较小限制的正确答案.

在这个页面的底部给出了一个非常简单的算法.

我的实现是这样的:

package support;

import java.util.ArrayList;
import java.util.List;

/**
 *
 * @author admin
 */
public class SieveOfEuler {
    int upperLimit;
    List<Integer> primeNumbers;

    public SieveOfEuler(int upperLimit){
        this.upperLimit = upperLimit;
        primeNumbers = new ArrayList<Integer>();
        for(int i = 2 ; i <= upperLimit ; i++)
            primeNumbers.add(i);
        generatePrimes();
    }

    private void generatePrimes(){
        int currentPrimeIndex = 0;
        int currentPrime = 2;
        while(currentPrime <= Math.sqrt(upperLimit)){
            ArrayList<Integer> toBeRemoved = new ArrayList<Integer>();
            for(int i = currentPrimeIndex ; i …
Run Code Online (Sandbox Code Playgroud)

java algorithm logic primes

4
推荐指数
1
解决办法
2695
查看次数

标签 统计

algorithm ×2

java ×2

primes ×2

c# ×1

logic ×1