FreeFoxCM

两个数的最小公倍和最大公约数问题
 1#include <stdio.h>
 2
 3int  Gcd(int x,int y);
 4int Icm(int x,int y);
 5
 6int main(void)
 7{
 8 int n,m;
 9
10 printf("请输入两个整数(n,m):");
11 scanf("%d,%d",&n,&m);
12 printf("\n整数%d和%d的最大公约数为:%d",n,m,Gcd(n,m));
13 printf("\n整数%d和%d的最小公倍数为:%d",n,m,Icm(n,m));
14
15 return 0;
16}

17/*该函数用辗转相除法计算两个数的最大公约数*/
18
19int  Gcd(int x,int y)
20{
21 int t,r;
22
23 if (x<y)
24 {
25  t=x;
26  x=y;
27  y=t;
28 }

29
30 while (1)
31 {
32  r=x%y;
33  if (r!=0)
34  {
35   x=y;
36   y=r;
37  }

38  else break;
39 }

40
41 return y;
42}

43/*该函数用于计算两个数饿最小公倍数*/
44
45int Icm(int x,int y)
46{
47 return ((x*y)/Gcd(x,y));
48}

49
50/****************************/
51
52

posted on 2008-06-17 15:12  FreeFox  阅读(266)  评论(0编辑  收藏  举报