gpt4 book ai didi

java - 如何在一个方法中找到三个数字的 GCD

转载 作者:行者123 更新时间:2023-12-01 18:57:10 29 4
gpt4 key购买 nike

我必须确保 3 个数字之间的 GCD 不大于 1。

这是我迄今为止该方法的代码:

private int greatestCommonFactor(int a, int b, int c)
{
for(int n = 0; n <= number; n++)
{
if()
}

return 1;
}

当我开始在实验室工作时,return 1 已经在那里了。如何保证GCD不大于1?并返回所有三个整数?

以下是代码的其余部分(如果有助于确定需要做什么):

import static java.lang.System.*;

public class Triples
{
private int number;

public Triples()
{
this(0);
}

public Triples(int num)
{
number = num;
}

public void setNum(int num)
{
number = num;
}

private int greatestCommonFactor(int a, int b, int c)
{
for(int n = 0; n <= number; n++)
{
if()
}

return 1;
}

public String toString()
{
String output="";
int max = number;
for(a = 1; a <= max; a++)
{
for(b = a +1; b <= max; b++)
{
for(c = b + 1; c <= max; c++)
{
if(Math.pow(a, 2)+ Math.pow(b, 2)== Math.pow(c, 2))
{
if((a%2==1 && b%2==0)|| (a%2==0 && b%2==1))
}
}
}
}


return output+"\n";
}
}

更新

这是我在同一实验室的新编码:

import static java.lang.System.*;

public class Triples
{
private int number;

public Triples()
{
this(0);
}

public Triples(int num)
{
number = num;
}

public void setNum(int num)
{
number = num;
}

private int greatestCommonFactor(int a, int b, int c)
{
for(int n = 0; n <= number; n++)
{
int max = number;
for(a = 1; a <= max; a++)
{
a = n;
for(b = a +1; b <= max; b++)
{
b =n;
for(c = b + 1; c <= max; c++)
{
c = n;
if(Math.pow(a, 2)+ Math.pow(b, 2)== Math.pow(c, 2))
{
if((a%2==1 && b%2==0)|| (a%2==0 && b%2==1))
{
if(a%2<=1 && b%2<=1 && c%2<=1)
{
return 1;
}
}
}
}
}
}
}

return 1;
}

public String toString()
{
String output="";
output = greatestCommonFactor(a, b, c);


return output+"\n";
}
}

最佳答案

您可以使用Euclid's algorithm计算 a 的 GCD和b 。调用结果d 。那么GCD为a , b ,和cc 的 GCD和d ;为此,您可以再次使用欧几里得算法。

关于java - 如何在一个方法中找到三个数字的 GCD,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/13573026/

29 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com