C语言 求两个正整数的最大公约数和最小公倍数

2024-12-03 14:40:06
推荐回答(3个)
回答1:

#include
int main()
{
int p,r,n,m,temp;
printf("请输入两个正整数:");
scanf("%d,%d",&n,&m);
if(n{
temp=n;
n=m;
m=temp;
}
p=n*m;
while(m!=0)
{
r=n%m;
n=m;
m=r;
}
printf("最大公约数:%d\n",n);
printf("最小公倍数:%d\n",p/n);
return 0;
}

回答2:

参考代码:

#include

int main()
{
int a, b, num1, num2, temp;
printf("输入两个正整数: ");
scanf("%d%d", &num1, &num2);
if(num1 > num2)
    {
        temp = num1;
num1 = num2;
num2 = temp;
}
    a = num1;
    b = num2;
    while(b != 0)/*利用辗除法,直到b为0为止*/
{
temp = a % b;
a = b;
b = temp;
}
printf("公约数:%d\n", a);
printf("公倍数:%d\n", num1 * num2 / a);
return 0;
}

回答3:

#include"stdio.h"
int main()
{
int m, n; int m_cup, n_cup, res; /*被除数, 除数, 余数*/
printf("Enter two integer:\n");
scanf("%d %d", &m, &n);
if (m > 0 && n >0)
{
m_cup = m;
n_cup = n;
res = m_cup % n_cup;
while (res != 0)
{
m_cup = n_cup;
n_cup = res;
res = m_cup % n_cup;
}
printf("Greatest common divisor: %d\n", n_cup);
printf("Lease common multiple : %d\n", m * n / n_cup);
}
else printf("Error!\n");
return 0;
}