浅谈求最大公约数最小公倍数

来源:互联网 发布:固镇行知中学在哪? 编辑:程序博客网 时间:2024/06/15 07:33
#include<stdio.h>int cdiv1(int a, int b)//最大公约数函数1{if(a==b){return a;}    else if(a<b){return cdiv1(b-a,a);}else {return cdiv1(a-b,b);}}int cdiv2(int a,int b)//最大公约数2{if(a<b){int temp=a;a=b;b=temp;}while(a%b){int r=a%b;a=b;b=r;}return b;}int cpow(int a,int b)//最小公倍数函数{int ret=cdiv1(a,b);return (a*b)/ret;}int main(){printf("最大公约数是  %d\n",cdiv1(6,8));printf("最小公倍数是  %d\n",cpow(6,8));return 0;}

优化之后:

//实现求最小公约数#include<stdio.h>int main(){int a=6,b=8;  while(b)//以下循环中可以将a,b交换  {     int r=a%b;      a=b;  b=r;  }printf("%d\n",a);return 0;}

#include <iostream>using namespace std;int Least_Common_Multip(int a,int b){      while(b)  {  int tmp =a%b;  a=b;  b=tmp;  }    return a;}int Great_Common_Divisor(int a,int b){int tmp = a*b;     while(b) { int t=a%b; a=b; b=t; } return (tmp/a);//return(tmp/Least_Common_Multip(a,b));}int main(){cout<<Least_Common_Multip(6,8)<<endl;    cout<<Great_Common_Divisor(6,8)<<endl;}


1 0
原创粉丝点击