【发布时间】:2021-05-23 01:33:21
【问题描述】:
我是java语言的初学者。我的任务是创建一个矩阵,该矩阵根据矩阵中随机生成的数字计算所有素数的总和。但是,我的程序根本没有打印正确的值。我的代码似乎有什么问题?
public static void main(String[] args) {
int arr[][] = new int[5][5];
Random ran = new Random();
System.out.println("Print matrix");
for (int i = 0; i < arr.length; i++) {
for (int j = 0; j < arr.length; j++) {
arr[i][j] = 10 + ran.nextInt(50 - 10 + 1);
System.out.print(arr[i][j] + "\t");
}
System.out.println();
}
int sum = 0;
for (int i = 0; i < arr.length; i++) {
for (int j = 0; j < arr.length; j++) {
int num = 0;
for (int k = 1; k <= arr[i][j]; ++k)
if (arr[i][j] % k == 0)
num++;
if (num == 2)
sum = sum + arr[i][j];
}
}
System.out.println("\nPrint the sum of prime no. in the matrix: " + sum);
}
输出:
Print matrix
33 11 41 43 38
32 18 25 16 24
40 16 11 18 11
49 37 22 13 17
10 45 30 13 37
Print the sum of prime no. in the matrix: 234
正确的总和值应该是283 而不是234。
【问题讨论】:
标签: java matrix multidimensional-array primes