/* 求两个不同正整数的最大公约数和最小公倍数 */ #include <stdio.h> int max_gys(int m,int n); int min_gbs(int m,int n); int main(){ int m,n; int gys,gbs; printf("请输入2个不同的正整数:"); scanf("%d,%d",&m,&n); gys=max_gys(m,n); gbs=min_gbs(m,n); printf("%d和%d的最大公约数是%d,最小公倍数是%d\n",m,n,gys,gbs); return 0; } int max_gys(int m,int n){ int t,r; if(m<n){//让m>n t=m; m=n; n=t; } /*最大公约数可以通过辗转相除的方式实现*/ do{ r=m%n; m=n; n=r; }while(r!=0); return m; } int min_gbs(int m,int n){ int i; i=m*n/max_gys(m,n); return i;//最小公倍数的方法可以通过让m*n除以m和n的最大公约数实现 }
收录于文章《885程序设计考点狂背总目录中》