求兩個整數的最大公約數和最小公倍數(通過呼叫自定義函式實現)
阿新 • • 發佈:2019-02-14
>#define _CRT_SECURE_NO_WARNINGS #include<stdio.h> int yue(int x, int y); //int yue_2(int x, int y); //int yue_3(int x, int y); int main() { int bei(int x, int y); int a, b; int ys, bs; printf("請輸入兩個整數:\n"); scanf("%d %d", &a, &b); ys = yue(a, b); bs = bei(a, b); printf("最大公約數為%d,最小公倍數為%d\n", ys, bs); return 0; } /*****************簡便一點 int yue_2(int x, int y) { int t, r; if (y > x) { t = x; x = y; y = t; } while (r = (x % y) )//這部分我通過中間變數m改變x,y的值,其實並不需要,因為原x值後面並不需要用到,直接覆蓋掉也是可以的 { x = y; y = r; } return y; }***************/ /***********用遞迴實現 int yue_3(int x, int y) { int t; if (y > x) { t = x; x = y; y = t; } if (!(x % y)) return y; return yue_3(y, x % y); }************************/ int yue(int x, int y) { int t,r,m; if (y > x) { t = x; x = y; y = t; } r = x%y; while (r!=0) { m = y; y = r; x = m; r = x%y; } return y; } int bei(int x, int y) { return (x*y / yue(x,y) ); }