1樓:匿名使用者
沒那麼簡單,除了2,還有更大的因子呢?
15和9都是奇數,也不能整除,但135不是他們的最小公倍數哦你得排除所有的可能
其實求最小公倍速,等價於求最大公約數
m*n 肯定是m n的公倍數,但是不是最小,就要看m和n裡面有沒有共同的因子
如果我們找出m n的最大的共同因子a,即他們的最大公約數那麼m*n/a就是m n的最大公倍數了
至於求最大公倍數就可用常用的輾轉相除法
2樓:天涯醉酒人
兩個數a、b的最小公倍數永遠大於等於a、b中較大的那個數,而且小於等於a、b之積,所以可以這樣寫:
#include
int max(int,int );
int min(int ,int);
int main()
else
}cout<
return 0; }int max(int a,int b)int min(int a,int b) c++ 多個數求最小公倍數
10 3樓:雨中笨豬 1、輸入n個數,不是隻定義一個50大小的陣列,需要你動態分配陣列 2、i=0沒有處理,當i=0時 r=0 sum/r 是沒有意義的 3、對於輸入數字沒有控制 4、求最小公倍數的演算法是不對的,多個非負整數的最小公倍數不能簡單的用「總的乘積/最大公約數」來求得,比如{2,3,4}如果按照你的方法,算出來的最大公約數是1,按照2*3*4/1求得的最小公倍數是24,事實上他們的最小公倍數是12。 求多個數最小共倍數的演算法為: (1) 計算m=a1*a2*..*an (2) 把a1,a2,..,an中的所有項ai用m/ai代換 (3) 找到a1,a2,..,an中的最小非零項aj,若有多個最小非零項則任取一個 (4) aj以外的所有其他非0項ak用ak mod aj代替; 若沒有除aj以外的其他非0項,則轉到(6) (5) 轉到(3) (6) 最小公倍數為m/aj 4樓:仙戈雅 求同時n個數的最小公倍數或最大公約數,可採取單獨求解的方法,即不要同時使用那種n數之積除以最大公約數的方法(不管用的,它只適合兩個或少量的數才有效,因為數字越多就越容易發生記憶體溢位): 5樓:匿名使用者 你是求出最大公約數,再用sum/它 其實你可以直接求最先公倍數的,兩個數的最小公倍數的求法就用到了最大公約數 int gbs(int a,int b) 這樣應該沒有錯了,你把這個題目的連結給我,我看看能不能過 6樓:匿名使用者 你的題目是求最小公倍數,而你的方法返回的是最大公約數int gdc(int a,int b) if(a % b == 0) else} 7樓:匿名使用者 如果n特別大,大於50,無法處理,還有n等於1的時候好像也沒有處理 8樓:匿名使用者 你就沒考慮過是因為資料一直乘導致中間值sum爆了int的範圍嗎,用long long試一下,或者套大數模板 9樓:匿名使用者 輸入是什麼呢? 可以手工驗證下 10樓:匿名使用者 出現0的話是不是會有bug呢? c++ 求最小公倍數 11樓: #include using namespace std; int main() return 0;//return小寫 }修改好的程式在最上面,我最近學習c++ primer,但是我有c語言的基礎,所以可以修改過來 12樓:兩文錢 #include using namespace std; int main() i++; }cout<
return 0; }//試一下 13樓:匿名使用者 你的 i 的初值是多少 就是這個地方出的問題 再好好看看吧 c語言,c++ 自定義函式,求兩個整數的最小公倍數 14樓:new妞寧 先求最大公約數,然後利用最大公約數求最小公倍數求最小公倍數演算法: 最小公倍數=兩整數的乘積÷最大公約數 你看博文吧,講的很清楚,利用了三種方法求最大公約數 最小公倍數歸根就是求最大公約數的 15樓:隨意之水的一滴 先求最大公約數,再兩個相乘處於最小公倍數。 最大公約數就從n開始迴圈到0。。。 後面的你懂得 16樓:逐夢兮樂 ==#include int main() else }result = result / a; printf("public score is %d",result); }祝你愉快! c++編寫程式。輸入兩個正整數,求它們的最大公約數和最小公倍數。 17樓:念憶 #include #include void main() 18樓:匿名使用者 #include #include #include // c++編寫程式。輸入兩個正整數,求它們的最大公約數和最小公倍數unsigned int maxdivisor(unsigned int a, unsigned int b) }return 1; }unsigned int minmultiple(unsigned int a, unsigned int b) }return 1; }void main() 一生何求 1 首先介紹一下求最小公倍數的經典方法 輾轉相除法 有兩整數a和b a b得餘數c 若c 0,則b即為兩數的最大公約數 若c 0,則a b,b c,再回去執行 a b除以最大公約數 等於最小公倍數 2 因此原問題也化為最小公倍數和最大公約數一起求了。程式的演算法如下 include int... 48 2 2 2 2 3 72 2 2 2 2 3 3 最小公倍數是144,最大公因數是24.12 2 2 3 48 2 2 2 2 3 最小公倍數是48,最大公因數是12 25 5 5 36 2 2 3 3 最小公倍數 25 36 900 最大公因數是1 33 3 11 161 7 23 最小公倍... 對,這時3個數最大公約數是1,沒有約下去的必要了。所以短除式左邊劃一個斜線,接下來找兩個數的公約數。發現18和15有公約數3,所以短除式左邊寫3,18和15分別剩下6和5,16不變。接著你發現6和16也有公約數2,於是你左邊寫2,6和16分別剩下3和8 好了,最後3,5,8徹底兩兩互質。所以最小公倍...c語言求最小公倍數,c語言求最小公倍數
最小公倍數和最大公倍數怎麼求,最小公倍數怎麼算
求最小公倍數的問題,求解最小公倍數的方法