Java - сумма простых чисел случайно сгенерированных значений массива - PullRequest
0 голосов
/ 30 октября 2018

Я новичок в Java, и у меня есть задача вычислить сумму простых чисел из случайно сгенерированных значений массива.

Итак, мне сказали, что у меня должно быть 3 класса:

1) MyArray - где я уже написал этот код:

...
public int[] createArray(int n) {
    int[] a = new int[n];

    for (int i = 0; i < a.length; i++) {
        a[i] = rnd.nextInt(10);
    }
    return a;
}
...

2) IsPrime - где я должен выполнить проверку, является ли число простым или нет. Проблема в том, что я не знаю, как «соединить» массив из MyArray с классом IsPrime. Я начал с логического метода checkPrime, в котором в качестве параметра используется объект m из класса MyArray, но я не знаю, как продолжить, как получить доступ к массиву из класса IsPrime.

Я благодарен за любые высказанные мнения и советы. Спасибо!

P.S. В моем третьем классе Run.java есть метод main.

Ответы [ 3 ]

0 голосов
/ 30 октября 2018

Это должно выглядеть примерно так:

MyArray myArray = new MyArray();
IsPrime isPrime = new IsPrime();

int sum = 0;
for(int num : myArray.createArray(20)){
    if(isPrime.checkPrime(num)){
        sum += num;
    }
}

System.out.println(sum);

Поместите его в свой метод main в классе Run

0 голосов
/ 30 октября 2018

Вы должны объявить в классе, где у вас есть массив. В классе isPrime вы должны объявить метод, который суммирует все простые числа, полученные в параметре int []. Просто в качестве идеи и, чтобы быть более быстрым, вы можете использовать ForkJoinPool для создания нескольких потоков, но я думаю, что на данный момент это не ваша основная цель.

    public class YourClass{

        private int[] MyArray;

    //Constructor
    //Methods

    //Getter of MyArray
        public int[] getMyArray(){
            return this.MyArray;
        }
    };
0 голосов
/ 30 октября 2018

Вы можете вызвать метод IsPrime из Run Class, как показано ниже

Class Run {

    public static void main(String[] args]) {

        IsPrime ip=new IsPrime();

        int sum= ip.checkPrime();

        System.out.print(sum);

    }
}


Class IsPrime {    
    public int checkPrime(int length){ MyArray m=
    MyArray ();  int[] arr = m.createArray(5);

    //iterating arr and call to isPrime() method

    }

    public boolean isPrime(int num){ 

        // prime checking logic  
    }  
}
...