c 语言穷举法求最大公约数
时间: 2023-12-13 13:30:23 浏览: 111
C语言中求最大公约数的穷举法可以通过以下代码实现:
```
#include <stdio.h>
int main()
{
int num1, num2, i, gcd;
printf("Enter two numbers: ");
scanf("%d %d", &num1, &num2);
for(i=1; i<=num1 && i<=num2; i++)
{
if(num1%i==0 && num2%i==0)
gcd = i;
}
printf("GCD of %d and %d is %d", num1, num2, gcd);
return 0;
}
```
在这个程序中,我们首先输入两个数字,然后使用for循环从1到两个数字中较小的那个数字进行迭代。如果两个数字都可以被当前迭代的数字整除,则将该数字赋值给gcd变量。最后输出gcd即为最大公约数。
相关问题
C语言用穷举法求最大公约数最小公倍数
可以使用穷举法(也称为暴力枚举法)来求最大公约数和最小公倍数。下面是 C 语言的代码示例:
```C
#include <stdio.h>
int main() {
int num1, num2, i, gcd, lcm;
printf("请输入两个正整数,用空格隔开:");
scanf("%d %d", &num1, &num2);
// 求最大公约数
for(i = 1; i <= num1 && i <= num2; i++) {
if(num1 % i == 0 && num2 % i == 0) {
gcd = i;
}
}
// 求最小公倍数
lcm = num1 * num2 / gcd;
printf("最大公约数:%d\n", gcd);
printf("最小公倍数:%d\n", lcm);
return 0;
}
```
在上面的代码中,我们从 1 到两个输入数中的较小者遍历,找到两个数的公约数,并将其存储在变量 `gcd` 中。最后,通过公式 `num1 * num2 / gcd` 来计算最小公倍数 `lcm`。
c++语言用穷举法求最大公约数最小公倍数
使用穷举法求最大公约数最小公倍数的基本思路是从 1 到较小数中的最大数依次枚举,找到能同时整除两个数的最大数作为最大公约数,然后通过两个数的乘积除以最大公约数得到最小公倍数。下面是 C++ 代码实现:
```
#include <iostream>
using namespace std;
int main() {
int a, b, max, min;
cout << "请输入两个正整数:" << endl;
cin >> a >> b;
max = (a > b) ? a : b; // 取较大数
min = (a < b) ? a : b; // 取较小数
for (int i = min; i >= 1; i--) {
if (max % i == 0 && min % i == 0) { // 找到最大公约数
cout << "最大公约数为:" << i << endl;
cout << "最小公倍数为:" << max * min / i << endl;
break;
}
}
return 0;
}
```
上面的代码中,我们首先输入两个正整数,然后通过三目运算符获取较大数和较小数。接着从较小数中的最大数开始逆序枚举,找到能同时整除两个数的最大数作为最大公约数,并通过两个数的乘积除以最大公约数得到最小公倍数。最后输出结果。
阅读全文