求兩個數的最大公約數和最小公倍數 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);
  }

 


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM