两个数字的公约数的 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。在主函数中,初始化两个值,并在其上调用上述函数。相关结果显示在屏幕上。

更新于: 2024-11-18

563 次查看

开启你的 职业生涯

通过完成课程获得认证

开始
广告