C語言求兩個數的最大公約數和最小公倍數
阿新 • • 發佈:2018-12-20
輾轉相除法, 又名歐幾里德演算法(Euclidean algorithm),是求最大公約數的一種方法。它的具體做法是:用較小數除較大數,再用出現的餘數(第一餘數)去除除數,再用出現的餘數(第二餘數)去除第一餘數,如此反覆,直到最後餘數是0為止。如果是求兩個數的最大公約數,那麼最後的除數就是這兩個數的最大公約數。 最小公倍數等於兩數之積除以其最大公約數
#include <stdio.h> int Gcd(int a,int b) { int i,t; if(a<=0||b<=0) return -1; t=a<b?a:b; for(i=t;i>0;i--) {if(a%i==0&&b%i==0)return i;} return 1; } int lcm(int a,int b) { int lcm; lcm=a*b/Gcd(a,b);//最小公倍數等於兩數之積除以其最大公約數 return lcm; } void main(){ int a,b; printf("請輸入兩個正整數:"); scanf("%d %d",&a,&b); printf("兩個正整數的最大公約數為%d,最小公倍數為%d。\n",Gcd(a,b),lcm(a,b)); system("pause"); }