首页 > 代码库 > 求两个数的最大公约数和最小公倍数 C语言
求两个数的最大公约数和最小公倍数 C语言
C程序设计第八章的第一道题目,求两个数的最大公约数和最小公倍数。
需要注意一下几点:
1.最大公约数和最小公倍数间的关系:
设两个数是a,b最大公约数是p,最小公倍数是q
那么有这样的关系:ab=pq
所以q=ab/p。
2.任意整数和0的公约数是该整数的所有约数,所以它们的最大公约数为该整数本身。
3.碾转相除法:被除数%除数=余数,如果余数不为0,就让原来的除数做为被除数,余数作为除数,
再进行运算 被除数%除数=余数,直到得到的余数为0为止,此时的除数就是最大公约数。
#include <stdio.h> int main() {int hcf(int,int); int lcd(int,int,int); int u,v,h,l; printf("请输入两个整数:\n"); scanf("%d",&u); scanf("%d",&v); h=hcf(u,v); printf("H.C.F=%d\n",h); l=lcd(u,v,h); printf("L.C.D=%d\n",l); return 0; } //求最大公约数 int hcf(int u,int v) { int temp; if (u<v) {temp=u;u=v;v=temp;} while (v!=0) //碾转相除法 { temp=u%v; u=v; v=temp;} return(u); } //求最小公倍数 int lcd(int u,int v,int h) { return(u*v/h); }
求两个数的最大公约数和最小公倍数 C语言
声明:以上内容来自用户投稿及互联网公开渠道收集整理发布,本网站不拥有所有权,未作人工编辑处理,也不承担相关法律责任,若内容有误或涉及侵权可进行投诉: 投诉/举报 工作人员会在5个工作日内联系你,一经查实,本站将立刻删除涉嫌侵权内容。