如何创建一个告诉两个整数的代码是co-prime?

时间:2017-06-08 05:02:02

标签: java primes

写一个方法,当传递两个正整数m和n时,如果m和n是共同素数,则返回true。当两个整数没有任何正整数除数期望时,它们是共同素数。

你可以假设m≤n。

public static boolean coPrime( int m, int n) { 
      if ( m%n == 0){ 
           return true; 
      } 
      return false; 

}

这是我到目前为止所拥有的。 你怎么意识到他们是共同主席?

2 个答案:

答案 0 :(得分:2)

如果他们的GCD是1,你知道两个数字是共同的。

Euclid的算法非常简单直接,可以在两个整数之间找到GCD:

private int gcd(int p, int q) {
    if (q == 0) {
        return p;
    }
    return gcd(q, p % q);
}

所以你需要做的就是用你的两个整数调用这个方法,如下所示:

private boolean coprime(int p, int q) {
    return (gcd(p, q) == 1);
}

答案 1 :(得分:0)

/* The running time of the function is O(m) - linear */

public static boolean coPrime( int m, int n) {

      /* Since m <= n */
      int index = 2;
      bool is_coprime = true;
      while(index <= m){
         if(m % index == 0 and n % index == 0){
             is_coprime = false;
         }
         index = index + 1;
      }
      return is_coprime; 
}