1. 程式人生 > >C語言:寫兩個函式,分別求兩個最大公約數和最小公倍數

C語言:寫兩個函式,分別求兩個最大公約數和最小公倍數

題目:寫兩個函式,分別求兩個整數的最大公約數和最小公倍數,用主函式呼叫這個兩個函式,並輸出結果。兩個整數由鍵盤輸入

分析:求最大公約數,需要用到輾轉相除法:
輾轉相除法:設兩數為a、b(a>b),求a和b最大公約數(a,b)的步驟如下:用a除b,得a÷b=q……r1(0≤r1)。若r1=0,則(a,b)=b;若r1≠0,則再用b除r1,得b÷r1=q……r2 (0≤r2).若r2=0,則(a,b)=r1,若r2≠0,則繼續用r1除r2,……如此下去,直到能整除為止。其最後一個非零除數即為(a,b)。

程式碼:

#include<stdio.h>
void main(){
int
maxComDivisor(int ,int ); int minComMultiple(int ,int ); int m,n; printf("enter two numbers : \n"); scanf("%d %d",&m,&n); printf("最大公約數為 %d\n",maxComDivisor(m,n)); printf("最小公倍數 %d\n",minComMultiple(m,n)); return 0; } int maxComDivisor(int x,int y){ int temp,p; if(x<y){ temp = y
; y = x ; x =temp; } while(y!=0){ p = x%y; x = y; y = p; } return x; } int minComMultiple(int x ,int y){ int p,min,multiple; multiple = x*y; p = maxComDivisor(x,y); min = multiple/p; return min ; }