C语言求最大公约数和最小公倍数

来源:百度知道 编辑:UC知道 时间:2024/07/03 02:17:40
#include<stdio.h>
void main()
{
int x,y,k,m,n,i;
x=1;
printf("请输入两个整数:");
scanf("%d%d",&m,&n);
if(m>n) k=n;
else k=m;
for(i=2;i<=k-1;i++)
{
if(m%i==0 ||n%i==0) x=i;
}
printf("最大公约数是%d\n",x);
y=(m*n)/x;
printf("最小公倍数是%d\n",y);
}
怎么输入有问题,请帮忙查查,谢了哦!

if(m%i==0 ||n%i==0) x=i;
这句有问题吧
应该是if(m%i==0 &&n%i==0) x=i;

main( )
{
int p,r,n,m,temp;
printf("input n and m:");
scanf("%d,%d",&n,&m);
if(n<m)
{
temp=n;
n=m;
m=temp; /*把大数放在n中,小数放在m中*/
}
p=n*m; /*先将n和m的乘积保存在p中,以便求最小公倍数时用*/
r=n%m;
while(r!=0) /*求n和m的最大公约数*/
{
n=m;
m=r;
r=n%m;
}
printf(" gongyueshu: %d\n",m);
printf(" gongbeishu: %d\n",p/m); /*p是原来两个整数的乘积*/
}
运行情况:
Input n and m :12,8↙
Gongyueshu: 4
gongbeishu:24

#include <stdio.h>

void func(int p, int q)
{
int m = 0;
int Product = 0;
Product=p*q;

while (q!=0)
{
m=p%q;
p=q;
q=m;
}

printf("The Min multiple is: %d\n", Product/p);
printf("The Max divis