计算JAVA中数字的相对Prime?

时间:2013-10-11 23:31:43

标签: java math primes prime-factoring

我正在开发一个程序,在根据我的算法应用一些计算后,我计算了一些类型long。现在,我必须找到我生成的这个数字的相对素数。我怎样才能做到这一点?我知道如果两个数字是相对素数然后是GCD == 1,但在这种情况下我没有另一个数字。我只有一个数字在我的程序中生成,我需要计算这个数字的相对素数。

修改

生成相对素数的条件是:

1 < relative prime < generated Number

感谢任何帮助。

1 个答案:

答案 0 :(得分:4)

获得相对素数的简单方法:

  

现在,我必须找到这个数字的相对素数

对于整数n n>2nn-1总是正确的。因此假设n不是2或更小,只需要n-1作为输出,因为它保证相对素数。如果n等于2,那么您的情况就不可能了。

非平凡的相对素数

如果你想要一个非平凡的解决方案,你总是可以实际计算GCD。使用欧几里德的方法如下:

long findGCD(long l1, long l2) {
    //end recursion
    if(l2 == 0){
        return number1;
    }
    return findGCD(l2, l1%l2);
}

并使用while循环尝试从n+2开始的所有数字,直到获得1的GCD。