[C]最大公約數和最小公倍數


 

/*
求最大公約數和最小公倍數 編寫程序,在主函數中輸入兩個正整數 a,b,調用兩個函數 fun1() 和 fun2(),分別求 a 和 b 的最大公約數和最小公倍數,在主函數中輸出結果。 */ #include <stdio.h> int fun1(int a,int b); int fun2(int a,int b); int main() { int a = 0, b = 0, gcd = 0, lcm=0; scanf("%d,%d", &a, &b); gcd = fun1(a, b); lcm = fun2(a, b); printf("最大公約數:%d\n", gcd); printf("最小公倍數:%d\n", lcm); system("pause"); return 0; } //最大公約數 = 小數 與 (大數%小數) 的最大公約數
//若a<b,經過一次輾轉相除后,a,b的值會互換,所以不需要考慮a,b誰大
int fun1(int a,int b) { int gcd = 0,r = 0;while (b != 0)//輾轉相除法 { r = a % b; a = b; b = r; } gcd = a; return gcd; } //最小公倍數 = 兩數相乘 / 最大公約數 int fun2(int a,int b) { int lcm = 0,gcd=0; gcd = fun1(a, b); lcm = a * b / gcd; return lcm; }

 求最大公約數也可以用遞歸實現

int f( int m, int n)
 {
     if(m%n==0)
         return n;
     else
         return f(n, m%n);
 }

 


免責聲明!

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



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