c 语言穷举法求最大公约数
时间: 2023-12-13 09:30:23 浏览: 128
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
#include <stdio.h>
int main() {
int num1, num2, lcm;
printf("请输入两个正整数:\n");
scanf("%d %d", &num1, &num2);
// 获取两个数中的较大数
lcm = (num1 > num2) ? num1 : num2;
// 循环判断是否为最小公倍数
while (1) {
if (lcm % num1 == 0 && lcm % num2 == 0) {
printf("%d和%d的最小公倍数为%d\n", num1, num2, lcm);
break;
}
lcm++;
}
return 0;
}
```
程序首先提示用户输入两个正整数,然后获取输入值并存储在变量 `num1` 和 `num2` 中。接着,程序通过比较两个数的大小来确定最小公倍数的初始值 `lcm`。最后,程序循环判断是否为最小公倍数,如果是,则打印结果并跳出循环。如果不是,则继续增加 `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;
}
```
上面的代码中,我们首先输入两个正整数,然后通过三目运算符获取较大数和较小数。接着从较小数中的最大数开始逆序枚举,找到能同时整除两个数的最大数作为最大公约数,并通过两个数的乘积除以最大公约数得到最小公倍数。最后输出结果。
阅读全文