Я пытаюсь напечатать массив некоторых простых чисел, которые делятся на число, вывод, который я получаю для этого кода:
[Дж @15db9742
Как я могу напечатать массив, который я получаю от функции.
public static long[] primes(int n) {
int count = 0;
long arr1[] = new long[n];
for (int i = 2; i < n; i++) {
boolean prime = true;
if (n % i == 0)
for (int j = 2; j < i && prime; j++) {
if (i % j == 0) prime = false;
}
if (prime && n % i == 0) {
arr1[count] = i;
System.out.println(arr1[count]);
count++;
}
}
long arr[] = new long[count];
for (int i = 0; i < arr.length; i++) {
arr[i] = arr1[i];
}
return arr;
}
Массив - это ссылочный тип.
И вы должны использовать утилиты класса Arrays
для печати массивов:
для многомерных массивов:
КСТАТИ
Небольшие предложения вы можете использовать некоторую оптимизацию вместо цикла:
for (int i = 0; i < arr.length; i++) {
arr[i] = arr1[i];
}
лучше использовать System.arraycopy()
:
System.arraycopy(arr1, 0, arr, 0, arr.length);
return arr1.clone()
.
clone()
не работает.
for(long n: arr)
System.out.println(n);
System.out.println(Arrays.toString(arr));