Java-随机生成的数组值的质数之和

时间:2018-10-30 14:58:09

标签: java oop random primes

我是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开始,该方法有一个MyArray类的对象m作为参数,但是我不知道如何继续,如何从IsPrime类访问数组。

我感谢您提出的任何意见和建议。谢谢!

P.S。 我的第三类Run.java具有主要方法。

3 个答案:

答案 0 :(得分:1)

基本上应该是这样的:

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);

将其放入Run类的主要方法中

答案 1 :(得分:0)

您可以从Run Class调用IsPrime方法,如下所示

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  
    }  
}

答案 2 :(得分:0)

您应该在类中声明拥有数组的位置。 在isPrime类中,您应该声明一个方法,该方法将参数int []中接收的所有素数相加。 出于一个想法,并且为了更快起见,您可以使用ForkJoinPool创建多个线程,但是我认为当前这不是您的主要目标。

    public class YourClass{

        private int[] MyArray;

    //Constructor
    //Methods

    //Getter of MyArray
        public int[] getMyArray(){
            return this.MyArray;
        }
    };