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)