c语言最大公约数与小公倍数
时间: 2024-01-30 22:09:39 浏览: 71
以下是两种用C语言求最大公约数和最小公倍数的方法:
1.利用循环法求最大公约数和最小公倍数
```c
#include <stdio.h>
int main() {
int a, b, i, j;
int max = 0;
scanf("%d%d", &a, &b);
for (i = a;; i++) // 求最小公倍数
{
if (i % a == 0 && i % b == 0) // 用大于等于a和b的数i(i大于等于a和b,无上限)分别除以a和b,同时除尽的第一个数即为最小公倍数
break; // 然后循环结束
}
for (j = 1; j <= a; j++) // 求最大公约数
{
if (a % j == 0 && b % j == 0) // 让a和b分别除以j(j从一开始,j有上限要小于等于a或b)
// 利用j++,如果a和b能同时除尽j
{
if (max < j) // 再判断j是不是小于a或b的最大公约数,不是则赋值最大值
max = j; // 这样求出来的max即为最大公约数
}
}
printf("%d %d\n", i, max); // 最后最大公约数用max表示了
return 0;
}
```
2.利用定义法求最大公约数和最小公倍数
```c
#include <stdio.h>
int main() {
int a, b, i, j;
int max = 0;
scanf("%d%d", &a, &b);
for (i = a;; i++) // 求最小公倍数
{
if (i % a == 0 && i % b == 0) // 用大于等于a和b的数i(i大于等于a和b,无上限)分别除以a和b,同时除尽的第一个数即为最小公倍数
break; // 然后循环结束
}
for (j = 1; j <= a; j++) // 求最大公约数
{
if (a % j == 0 && b % j == 0) // 让a和b分别除以j(j从一开始,j有上限要小于等于a或b)
// 利用j++,如果a和b能同时除尽j
{
if (max < j) // 再判断j是不是小于a或b的最大公约数,不是则赋值最大值
max = j; // 这样求出来的max即为最大公约数
}
}
printf("%d %d\n", i, max); // 最后最大公约数用max表示了
return 0;
}
```
阅读全文