Bootstrap

输入两个数,求这两个数的最大公约数,及最小公倍数(三种算法)

辗转相除法

#include<stdio.h>
int main()
{   
 int i,j,k,m,n;
 printf("请输入两个整数:");
 scanf("%d%d",&i,&j);
 m=i;n=j;
 while(k!=0)
 {   
  k=i%j;   //比如12%18的下一次循环就是18%12,所以程序不用比较两个数的大小
  i=j;
  j=k;
 }
 printf("最大公约数是%d\n",i);
 printf("最小公倍数是%d\n",m*n/i);
 return 0;
}

辗转相减法

#include<stdio.h>
int main()
{   
 int i,j,m,n;
 printf("请输入两个整数:");
 scanf("%d%d",&i,&j);
 m=i;n=j;
 while(i!=j)
 {
  if(i>j)
   i=i-j;
  else
   j=j-i;
 }
 printf("最大公约数是%d\n",i);
 printf("最大公倍数是%d\n",m*n/i);
 return 0;
}

穷举法

#include<stdio.h>
int main()
{   
 int a,b,i,t,m,n;
 printf("请输入两个整数:");
 scanf("%d%d",&a,&b);
 m=a;n=b;
 for(i=1;i<=a;i++)
 {
  if(a%i==0&&b%i==0)
     t=i;
 }
 printf("最大公约数是%d\n",t);
 printf("最大公倍数是%d\n",m*n/t);
 return 0;
}  
;