C语言编程:输入两个正整数m和n,求它们的最大公约数。
main() { int a,b,num1,num2,temp; printf("请输入两个正整数:\n"); scanf("%d,%d",&num1,&num2); if(num1<num2)/*选出较大数*/ { temp=num1; num1=num2; num2=temp; } a=num1,b=num2; while(b!=0)/*辗转取余算法*/ { temp=a%b; a=b; b=temp; } printf("它们的最大公约数为:%d\n",a); printf("它们的最小公倍数为:%d\n",num1*num2/a);/*两数相乘除最大公约数就是最小公倍数*/ }
比较简单的做法 #include "stdio.h" void main() { int num1,num2; printf("请输入两个正整数:\n"); scanf("%d%d",&num1,&num2); while(num1 != num2)//当两数不等时,不停的用大数减小数,并把结果赋值给大数,相当于求余数 if(num1>num2) num1 = num1-num2; else num2=num2-num1; printf("他们的最大公约数是%d",num1); }