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); }