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