【问题标题】:Calculating a relative Prime of a number in JAVA?在JAVA中计算一个数字的相对素数?
【发布时间】:2013-10-11 23:31:42
【问题描述】:

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

编辑

产生相对素数的条件是这样的:

1 < relative prime < generated Number

感谢任何帮助。

【问题讨论】:

    标签: java math primes prime-factoring


    【解决方案1】:

    获取相对质数的简单方法:

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

    对于整数n 其中n>2 总是正确的nn-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 开始的所有数字,直到 GCD 为 1。

    【讨论】:

    • 感谢您的回复,但我有一个条件需要满足。我忘了在我的问题中添加这一点,根据该相对质数应该小于我生成的数字。
    • @UsamaSarwar 简单。假设该数字大于 3,则将该数字 1。在任何情况下它都会起作用。如果数字是 2 或更低,它永远不会起作用。
    猜你喜欢
    • 1970-01-01
    • 2021-10-19
    • 1970-01-01
    • 2014-04-28
    • 1970-01-01
    • 2020-05-29
    • 1970-01-01
    • 2020-09-20
    • 1970-01-01
    相关资源
    最近更新 更多