判断两数互质,java实现

    技术2022-07-15  37

    数组下标i和j值互质时,a[i][j] = true,反之false

    Write a program to create an n * n Boolean array. If I and j are coprime, a [i] [J] is true, otherwise it is false

    /** * When Array index Mutuality ,a[i][j] = true,else is false * 数组i和j值互质时,a[i][j] = true,反之false * Recursive implementation * 递归实现 */ public static boolean[][] Mutuality( boolean[][] a) { for(int i = 0; i < a.length; i++) { for(int j = 0; j < a[0].length; j++) { if( huzhi(i,j) == 1 ) a[i][j] = true; else a[i][j] = false; } } return a; } //新建一个方法来判断i和j是否互质 //接收i和j public static int huzhi(int m, int n) { //当两个数的值其中有一个为0,那么这两个数必定互质 if( m == 0 || n == 0 ) return 1; //若两个数能够整除,则必定不互质 if( m % n ==0 ) return n; //若不能整除,m n 互质当且仅当 n 与 m%n 互质 else return huzhi( n , m % n ); } //测试一下 public static void main(String [] args) { boolean[][] a = new boolean[5][5]; Mutuality(a); //输出 for(int i = 0; i < a.length; i++) { for(int j = 0; j < a[0].length; j++) { System.out.print(a[i][j]+" ");

    } System.out.println(); } }
    Processed: 0.013, SQL: 9