两个数字的公约数的 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。在主函数中,初始化两个值,并在其上调用上述函数。相关结果显示在屏幕上。
广告
数据结构
网络
关系型数据库管理系统
操作系统
Java
iOS
HTML
CSS
Android
Python
C 语言编程
C++
C#
MongoDB
MySQL
Javascript
PHP