最大公约数和最小公倍数问题:首先最大公约数的求法,我比较推荐辗转相除法。假设求40和24的最大公约数,首先,我们得用40除去21得出余为16,再用40(24也可以,在这就举一个例子了)除去16余8,再用16除8,没有余,故最大公约数为8。那从中我们可以得到什么灵感呢,当辗转除完后,那个没有余项的被除数就是最大公约数。(说到这,友友懂了没,自己试着多写几个数试试,你会发现新大陆的)。最大公约数我们知道了,那么最小公倍数怎么求呢,这里有个公式!!!最小公倍数=这两个数相乘/最大公约数代码如下#include <stdio.h> //输入两个正整数m和n,求其最大公约数和最小公倍数int main(){ int m,n,i; printf("请分别输入两个数:"); scanf("%d%d",&m,&n); int num_1=m,num_2=n; if(m<n) { m=num_2; //应该是大数除小数,所以得换值 n=num_1; } if(m>=n){ while(n!=0){ //例如16%8==0-->8%0==0 i=m%n; m=n; n=i; } printf("最大公约数为%d\n",m); printf("最小公倍数为%d",num_1*num_2/m); } return 0;}