两个数字的公约数的 Java 程序
在本文中,我们将学习如何使用 Java 查找两个数字的公约数。该程序将使用递归方法计算两个数字的最大公约数 (GCD),然后确定这两个数字共享多少个约数。输出将显示公约数的总数。
问题陈述
编写一个 Java 程序来查找并计算两个给定数字的公约数。下面是相同的演示 -
输入
val_1= 68
val_2= 34
输出
The common divisors between the two numbers is
4
查找两个数字的公约数的步骤
以下是查找两个数字的公约数的步骤 -
- 定义一个名为 Demo 的类,其中包含静态方法。
- 创建一个 find_gcd 方法,使用递归计算两个数字的 GCD。
- 创建一个 common_divisors 方法,使用 GCD 计算公约数。
- 使用 for 循环 迭代从 1 到 GCD 平方根的数字。
- 使用 if-else 语句 检查 GCD 是否可以被当前数字整除
- 如果可以整除并且除数等于商,则将计数加 1。
- 否则,将计数加 2。
- 在主方法中,初始化两个数字并调用 common_divisors 方法。
- 打印公约数的总数。
两个数字的公约数的 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。在主函数中,初始化两个值,并在其上调用上述函数。相关结果显示在屏幕上。
广告