Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/java/314.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181

Warning: file_get_contents(/data/phpspider/zhask/data//catemap/3/arrays/12.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Java 素数提取_Java_Arrays_Sieve Of Eratosthenes - Fatal编程技术网

Java 素数提取

Java 素数提取,java,arrays,sieve-of-eratosthenes,Java,Arrays,Sieve Of Eratosthenes,我需要创建一个方法来标记素数并返回素数的计数 我走了这么远: private static int[] extractPrimesNumbers(int[] array, int countOfPrimeNumbers) { int[] primeNumber = new int[countOfPrimeNumbers]; int position = 0; for (int j = 2; j < array.length; j++) {

我需要创建一个方法来标记素数并返回素数的计数

我走了这么远:

  private static int[] extractPrimesNumbers(int[] array, int countOfPrimeNumbers) {
        int[] primeNumber = new int[countOfPrimeNumbers];
        int position = 0;
        for (int j = 2; j < array.length; j++) {
            for(int key : array) {
                if(j == 2) {
                    array[position] = j;
                }
                boolean isDividedByJ = j % j == 0;
                boolean isDividedbyTwo = j % 2 != 0;
                if(isDividedByJ && isDividedbyTwo) {
                    array[position] = j;
                    position++;
                    j++;
                }
            }
private static int[]extractPrimesNumbers(int[]array,int countofPrimeNumber){
int[]primeNumber=新的int[CountOfPrimeNumber];
int位置=0;
对于(int j=2;j
我不知道如何标记无素数。我在想最好的方法是将无素数标记为0,然后从大于0的位置/索引计算值的数量。
值得一提的是,所有的东西都需要在一个使用数组的方法中。不能使用任何使用外部布尔方法的素数的标准解决方案。

只需返回一个素数数组,无需标记。新数组和旧数组的cont中的diff也会给出非素数的cont。

这是我的解决方案接近

1) 首先,有一个非常简单的方法来检查一个数字是否为素数。请参见以下内容:

public static boolean checkPrime(int number) {
    if (number <= 1) {
        return false;
    }
    System.out.println(number);

    for (int i=2; i <= Math.sqrt(number); i++) {
        if(number % i == 0) {
            System.out.println(i);
            return false;
        } 
    }
    return true;

}
3) 然后,只需从主方法调用它:

public static void main(String[] args){
    int[] nums = {1,2,3,5,6,7,8,9,10};
    int primes = numOfPrimesInArray(nums);
    System.out.println(primes);
}

如果我在写这篇文章时没有犯任何错误,我应该告诉你数组中的素数。

我用Python解决了这个问题。我尝试了两种方法,这一种是最快的。不过,我还是遇到了1000000的内存溢出

n = int(input("Type a number"))
primes = 0
for j in range(2,n+1):
 
    for k in range(2,j):
        if j%k==0:
            primes = primes +1
            #print(j)
            break
    
        
print(n-1-primes)

你能给出一些输入和预期输出的例子吗?嗨,我有一个[0,1,2,3,4,5,6,7,8,9,10,11,12,13,14]的数组,我需要[3,5,7,9,11]像我在描述中提到的那样,我不能使用外部布尔方法。
n = int(input("Type a number"))
primes = 0
for j in range(2,n+1):
 
    for k in range(2,j):
        if j%k==0:
            primes = primes +1
            #print(j)
            break
    
        
print(n-1-primes)