最大公约数和最小公倍数

来源:互联网 发布:xampp linux 启动 编辑:程序博客网 时间:2024/06/10 02:18

方法一:

#include<stdio.h>
int revers(int a, int b)
{
int tem = 0;
if (a < b)
{
tem = a;
a = b;
b = tem;
}
}
int main()
{
int num1, num2;
int num11, num22;
int lcm=0;
int r=0;
printf("请输入两个正整数:\n");
scanf_s("%d%d", &num1, &num2);
num11 = num1;
num22 = num2;
revers(num11, num22);
while (num11%num22!=0)
{
r = num11%num22;
num11 = num22;
num22 = r;
}

printf("%d为%d和%d的最大公约数\n", num22, num1, num2);
lcm = num1*num2 / num22;
printf("%d为%d和%d的最小公倍数\n", lcm, num1, num2);
system("pause");
}

方法二:

#include<stdio.h>
int main()
{
int num1, num2;
int gcd=0, lcm=0;
int min = 0, i = 0;
printf("请输入两个正整数:\n");
scanf_s("%d%d", &num1, &num2);
min = (num1 <num2 ? num1 : num2);
for (i = 2;i <= min; i++)
{
if ((num1%i == 0) && (num2%i == 0))
{
gcd = i;
}
}
if (gcd != 0)
{
printf("%d为%d和%d的最大公约数\n", gcd, num1, num2);
lcm = num1*num2 / gcd;
printf("%d为%d和%d的最小公倍数\n", lcm, num1, num2);
}
else if (gcd == 0)
{
printf("1是%d和%d最大公约数\n", num1, num2);
lcm = num1*num2;
printf("%d为%d和%d的最小公倍数\n", lcm, num1, num2);
}

system("pause");
}



原创粉丝点击