Potrzebuję metody zwracania liczb pierwszych w tablicy.zwraca tablicę liczb pierwszych
Więc jeśli dana: primeArray (5)
niż tablicą tak jak powinno być zwrócone (2, 3, 5)
Z jakiegoś powodu to nie wydają się działać dla mnie:
public static int[] primeArray(int numFind)
{
//determines the size of the array returned
int primeTotal = 0;
//loop to find total prime numbers
for (int j = 1; j <= numFind; j ++)
{
if (isPrime(j))
primeTotal +=1;
}
//declare array to be returned
int[] numA = new int[primeTotal];
//current index of prime number
int iP = 0;
//loop to add prime elements to array
for (int x = 1; x <= numFind; x ++)
{
if (isPrime(x))
{
numA[iP]=x;
iP++; // <--- THIS IS CAUSING ME PROBLEMS
}
}
return numA;
}
public static boolean isPrime(int n)
{
for (int i = 2; i < n; i++)
{
if(n%i==0)
return false;
}
return true;
}
to co używam do testowania mojego kodu:
int[] num = primeArray(11);
System.out.println(num[0]);
System.out.println(num[1]);
Ale na wyjściu dostaję to:
1
2
Jeśli jednak skomentuję iP + +; niż instrukcja if ostatecznie decyduje się wykonać TYLKO, gdy liczby pierwsze są przekazywane jako parametr w: isPrime (j), ale wtedy, jeśli pokona cały cel metody primeArray, ponieważ potrzebuję metody primeArray do zwrócenia tablicy liczb pierwszych.
Twój kod wygląda dobrze .. Wystarczy pętla tablica .. – Shashi