日韩av黄I国产麻豆传媒I国产91av视频在线观看I日韩一区二区三区在线看I美女国产在线I麻豆视频国产在线观看I成人黄色短片

歡迎訪問 生活随笔!

生活随笔

當(dāng)前位置: 首頁 >

求n个数的最大公因数和最小公倍数(c)

發(fā)布時間:2025/3/19 29 豆豆
生活随笔 收集整理的這篇文章主要介紹了 求n个数的最大公因数和最小公倍数(c) 小編覺得挺不錯的,現(xiàn)在分享給大家,幫大家做個參考.

設(shè)計要點
可以通過反復(fù)求兩個正整數(shù)的最大公因數(shù)和最小公倍數(shù)的方法來實現(xiàn)。
規(guī)定(a,b)為a,b的最大公因數(shù),{a,b}為最小公倍數(shù)。
對于3個或3個以上的正整數(shù),最大公約數(shù)與最小公倍數(shù)有以下性質(zhì):

(al,a2.a3)=((al,a2),a3)。 (al,a2.a3,a4)=((al,a2,a3),a4),... {al,a2,a3}=({al,a2},a3}。 {al,a2,a3,a4}={{al,a2,a3},a4},... 應(yīng)用這一性質(zhì),要求n個整數(shù)的最大公約數(shù),先求出前n-1個整數(shù)的最大公約數(shù)b,再求第n個數(shù)與b的最大公約數(shù): 要求n個整數(shù)的最小公倍數(shù),先求出前n-1個整數(shù)的最小公倍數(shù)b,再求第n個數(shù)與b的最小公倍數(shù)。求n個數(shù)的最大公約數(shù)。 為便于輸出,設(shè)置m數(shù)組: 1)輸入的n個正整數(shù)存儲在m數(shù)組m[0],m[1],...,m[n-1]中。 2),開始時b=m[0],即輸入的第一個數(shù)賦值給變量b。 3)進(jìn)入k循環(huán),每次把輸入的數(shù)m[1]~m[n-1]賦值給a求得a、b的最大公約數(shù)c。如果c=l,退出循環(huán),即m數(shù)組的最大公約數(shù)為1:否則賦值給b,即b=c,為下一輪運算做準(zhǔn)備。求n個數(shù)的最小公倍數(shù)與上述類似。 *代碼* #include <stdio.h>int main() {int n;long a, b, c, r, m[100];scanf("%d", &n);for (int i = 0; i < n; i++)scanf("%ld", &m[i]);b = m[0];for (int i = 1; i < n; i++) {a = m[i];if (a < b) {c = a;a = b;b = c;}//確保a>bfor (c = b; c >= 1; c--)//(b一直更新為前n-1個數(shù)的最大公因數(shù)if (a % c == 0 && b % c == 0)//當(dāng)a比前面的數(shù)的最大公因數(shù)還小時余數(shù)一直不會0,直到小于abreak;if (b == 1)break;b = c; //存最大公因數(shù)}printf("最大公因數(shù):%ld\n", c);//求最小公倍數(shù)b = m[0];for (int i = 1; i < n; i++) {a = m[i];if (a < b) {c = a;a = b;b = c;}for (c = a; c <= a * b; c += a) //求最大公倍數(shù)if (c % b == 0) //注意是 c+=a,且當(dāng)c能整除小的那個數(shù)時就求出了//(b一直更新為前n-1個數(shù)的最小公倍數(shù)break;b = c; //更新最小公倍數(shù)}printf("最小公倍數(shù):%ld\n", c);return 0; }

總結(jié)

以上是生活随笔為你收集整理的求n个数的最大公因数和最小公倍数(c)的全部內(nèi)容,希望文章能夠幫你解決所遇到的問題。

如果覺得生活随笔網(wǎng)站內(nèi)容還不錯,歡迎將生活随笔推薦給好友。