首頁 > 後端開發 > C++ > 主體

C程式實作歐幾裡得演算法

WBOY
發布: 2023-09-17 12:41:02
轉載
1005 人瀏覽過

C程式實作歐幾裡得演算法

問題

實作歐幾裡得演算法來找出兩個整數的最大公約數(GCD) 和最小公倍數(LCM),並將結果與給定整數一起輸出。

實作歐幾裡得演算法求兩個整數的最大公約數(GCD) 與最小公倍數(LCM) 的解如下-

求GCD和LCM 的邏輯如下-
if(firstno*secondno!=0){
   gcd=gcd_rec(firstno,secondno);
   printf("</p><p>The GCD of %d and %d is %d</p><p>",firstno,secondno,gcd);
   printf("</p><p>The LCM of %d and %d is %d</p><p>",firstno,secondno,(firstno*secondno)/gcd);
}
登入後複製

調用的函數如下-

int gcd_rec(int x, int y){
   if (y == 0)
      return x;
   return gcd_rec(y, x % y);
}
登入後複製

程序

以下是C 程序,用於實現歐幾里德演算法,以求兩個整數的最大公約數(GCD) 和最小公倍數(LCM) -< /p>

 現場示範

#include<stdio.h>
int gcd_rec(int,int);
void main(){
   int firstno,secondno,gcd;
   printf("Enter the two no.s to find GCD and LCM:");
   scanf("%d%d",&firstno,&secondno);
   if(firstno*secondno!=0){
      gcd=gcd_rec(firstno,secondno);
      printf("</p><p>The GCD of %d and %d is %d</p><p>",firstno,secondno,gcd);
      printf("</p><p>The LCM of %d and %d is %d</p><p>",firstno,secondno,(firstno*secondno)/gcd);
   }
   else
      printf("One of the entered no. is zero:Quitting</p><p>");
   }
   /*Function for Euclid&#39;s Procedure*/
   int gcd_rec(int x, int y){
   if (y == 0)
      return x;
   return gcd_rec(y, x % y);
}
登入後複製

輸出

當上述程序執行時,會產生以下結果-

Enter the two no.s to find GCD and LCM:4 8

The GCD of 4 and 8 is 4

The LCM of 4 and 8 is 8
登入後複製

以上是C程式實作歐幾裡得演算法的詳細內容。更多資訊請關注PHP中文網其他相關文章!

來源:tutorialspoint.com
本網站聲明
本文內容由網友自願投稿,版權歸原作者所有。本站不承擔相應的法律責任。如發現涉嫌抄襲或侵權的內容,請聯絡admin@php.cn
熱門教學
更多>
最新下載
更多>
網站特效
網站源碼
網站素材
前端模板