📜  创建矩阵并用质数填充它的Java程序(1)

📅  最后修改于: 2023-12-03 15:07:12.814000             🧑  作者: Mango

创建矩阵并用质数填充它的Java程序

在这个Java程序中,我们将学习如何创建一个矩阵,并使用质数填充矩阵的元素。在这个项目中,我们将使用一个简单的算法来从2开始找到下一个质数。

算法

在本项目中,我们将使用以下算法来找到下一个质数:

  1. 如果当前数字是2,则返回2,因为2是素数。
  2. 如果当前数字是奇数,则查找下一个奇数。
  3. 如果当前数字是偶数,则查找下一个奇数。
  4. 将当前数字除以2,并从3开始增加2,查找下一个奇数。
  5. 如果找到了一个数字n,它不能被2、3、4、...、sqrt(n)整除,则将其返回。

以下是用Java实现的算法:

public static boolean isPrime(int n) {
    if (n == 2) {
        return true;
    } else if (n % 2 == 0) {
        return false;
    }
    
    for (int i = 3; i <= Math.sqrt(n); i += 2) {
        if (n % i == 0) {
            return false;
        }
    }
    
    return true;
}

public static int getNextPrime(int n) {
    int next = n + 1;
    
    while (!isPrime(next)) {
        next++;
    }
    
    return next;
}
创建矩阵并用质数填充它

现在,我们已经有一个算法来找到下一个质数,我们可以使用这个算法来填充一个矩阵。

public static void main(String[] args) {
    int rows = 5; // 矩阵行数
    int cols = 5; // 矩阵列数
    
    int[][] matrix = new int[rows][cols]; // 创建矩阵
    
    int current = 2; // 从2开始填充矩阵
    for (int i = 0; i < rows; i++) {
        for (int j = 0; j < cols; j++) {
            matrix[i][j] = current; // 填充矩阵
            
            current = getNextPrime(current); // 获取下一个质数
        }
    }
    
    // 打印矩阵
    for (int i = 0; i < rows; i++) {
        for (int j = 0; j < cols; j++) {
            System.out.print(matrix[i][j] + " ");
        }
        System.out.println();
    }
}

输出:

2 3 5 7 11 
13 17 19 23 29 
31 37 41 43 47 
53 59 61 67 71 
73 79 83 89 97

这就是使用Java创建矩阵并用质数填充它的程序。