#include<stdio.h> int main() { int a,b;//两个数 int x,y;//暂时保存a,b以便后面求最小公倍数p=(a*b)/a int p;//最小公倍数 int temp; while(scanf("%d %d",&a,&b)!=EOF)//ctrl+Z退出循环 { x=a; y=b;//暂时保存a,b的原值到x,y中,因为后面a,b的值要变。 while(b!=0) { temp=a%b; a=b; b=temp; } p=x*y/a;//求最小公倍数 printf("最大公约数是%d 最小公倍数是%d\n",a,p); } return 0; }
--===================================================================
用最大公约数,最小公倍数的函数求出来,如下:
#include<stdio.h> //函数声明 int gcd (int v1,int v2);//变量v1可以写成变量a,因为编译时不检查!!! int lcm(int v1,int v2); int main() { int a,b;//两个数 while(scanf("%d %d",&a,&b)!=EOF)//ctrl+Z退出循环 { printf("最大公约数是%d 最小公倍数是%d\n",gcd(a,b),lcm(a,b)); } return 0; } int gcd (int a,int b)//Greatest common divisor:最大公约数 { return b==0?a:gcd(b,a%b); } int lcm(int v1,int v2)// lowest common multiple :最小公倍数 { return v1*v2/gcd(v1,v2); }
原文地址:http://blog.csdn.net/u012110719/article/details/41157723