C语言求两个整数的最大公约数与最小公倍数
谭浩强C程序设计(第五版)习题7-1
#define _CRT_SECURE_NO_WARNINGS
#pragma warning(disable:4996)
#include<stdio.h>
int main()
{
int cd(int, int);// common divisor公约数;
int cm(int, int);//common multiple 公倍数
int u, v;
printf("input two integers:\n");
scanf("%d %d", &u, &v);
printf("最大公约数:%d\n", cd(u, v));
printf("最小公倍数: %d",cm(u, v));
return 0;
}
int cd(int a, int b)
{
int i,k;
if (a < b)
{
int temp;
temp = a;
a = b;
b = temp;
}
for(i = 1; i <= b; i++)//从1到b穷举最大公约数
{
if ((a % i == 0) && (b % i == 0))
k = i;
}
return k;
}
int cm(int a, int b)
{
int k;
if (a < b)
{
int temp;
temp = a;
a = b;
b = temp;
}
for (int i = 1; i <= b; i++)//从1*i到b*i穷举最小公倍数
{
if ((i * a) % b == 0)
{
k = (i * a);
break;
}
}
return k;
}