公约数程序怎么写

时间:2025-01-29 21:31:21 单机游戏

C语言

求两个数的公约数

```c

include

void findCommonDivisors(int num1, int num2) {

int smaller = (num1 < num2) ? num1 : num2;

printf("公约数:");

for (int i = 1; i <= smaller; i++) {

if (num1 % i == 0 && num2 % i == 0) {

printf("%d ", i);

}

}

printf("\n");

}

int main() {

int num1, num2;

printf("请输入两个正整数:");

scanf("%d %d", &num1, &num2);

findCommonDivisors(num1, num2);

return 0;

}

```

C++

求两个整数的最大公约数

```cpp

include

int gcd(int a, int b) {

if (a == b) {

return a;

}

if (a > b) {

return gcd(a - b, b);

} else {

return gcd(a, b - a);

}

}

int main() {

int a, b;

std::cout << "请输入数字a的值:" << std::endl;

std::cin >> a;

std::cout << "请输入数字b的值:" << std::endl;

std::cin >> b;

std::cout << "上面两个数字的最大公约数为" << gcd(a, b) << std::endl;

return 0;

}

```

Java

求两个整数的最大公约数

```java

import java.util.Scanner;

public class Gys {

public static int gcd(int a, int b) {

if (a == b) {

return a;

}

if (a > b) {

return gcd(a - b, b);

} else {

return gcd(a, b - a);

}

}

public static void main(String[] args) {

Scanner scanner = new Scanner(System.in);

System.out.println("请输入数字a的值:");

int a = scanner.nextInt();

System.out.println("请输入数字b的值:");

int b = scanner.nextInt();

System.out.println("上面两个数字的最大公约数为" + gcd(a, b));

}

}

```

Python

求两个数的最大公约数

```python

def gcd(a, b):

while b:

a, b = b, a % b

return a

num1 = int(input("输入第一个数字: "))

num2 = int(input("输入第二个数字: "))

print(f"{num1} 和 {num2} 的最大公约数为 {gcd(num1, num2)}")

```

这些程序分别使用C语言、C++、Java和Python实现了求两个整数的最大公约数。你可以根据自己的需求和熟悉程度选择合适的编程语言来实现。