以下是Java中两个数字的公约数的示例-
public class Demo{ static int find_gcd(int val_1, int val_2){ if (val_1 == 0) return val_2; return find_gcd(val_2%val_1,val_1); } static int common_divisors(int val_1,int val_2){ int no = find_gcd(val_1, val_2); int result = 0; for (int i=1; i<=Math.sqrt(no); i++){ if (no%i==0){ if (no/i == i) result += 1; else result += 2; } } return result; } public static void main(String args[]){ int val_1 = 68, val_2 = 34; System.out.println("The common divisors between the two numbers is "); System.out.println(common_divisors(val_1, val_2)); } }
输出结果
The common divisors between the two numbers is 4
名为Demo的类包含一个静态函数,该函数带有两个值,并使用递归返回最大的公约数。另一个函数称为此最大公约数函数,并迭代1到最大公约数平方根之间的数字。
接下来,条件是迭代的值的模数应等于零,然后,将数字除以迭代的值应等于迭代的值,然后将结果(最初初始化为0)增加1.如果不满足条件,则结果加2。在main函数中,初始化了两个值,并在上面调用了上述函数。相关结果显示在屏幕上。