1、用遞歸算法的話。。我只知道一種。。求兩個(gè)自然數(shù)的最大公約數(shù)。。
成都創(chuàng)新互聯(lián)主營喀左網(wǎng)站建設(shè)的網(wǎng)絡(luò)公司,主營網(wǎng)站建設(shè)方案,app軟件開發(fā),喀左h5成都微信小程序搭建,喀左網(wǎng)站營銷推廣歡迎喀左等地區(qū)企業(yè)咨詢
2、方法三:假設(shè)輸入的兩個(gè)整數(shù)為n1和n2,首先求n1和n2的最小值d,然后依次檢驗(yàn)d,d-1,d-2,….,1是否是n1和n2的公約數(shù),這樣找到的第一個(gè)公約數(shù)就是最大公約數(shù)。
3、//求最大公約數(shù) publicstaticintcommonDivisor(intn,intm){ //輾轉(zhuǎn)相除是用大的除以小的。
4、package one;import java.util.*;public class ProOne { //題目:輸入兩個(gè)正整數(shù)m和n,求其最大公約數(shù)和最小公倍數(shù)。//程序分析:利用輾除法。
1、{ int c;while (b 0){ c = a % b;a = b;b = c;} return a;} int main(){ int a, b, c;scanf(%d %d, ¥a, ¥b);c = gcd(a, b);printf(最大公約數(shù)為%d,最小公倍數(shù)為%d。
2、后把所有的除數(shù)連乘起來,所得的積就是這幾個(gè)數(shù)的最大公約數(shù)。
3、//m,公約數(shù);n,公倍數(shù);設(shè)置初始值為-1是有考慮的。
1、得商2,余數(shù)是5813,再用23252做被除數(shù),5813做除數(shù),正好除盡得商數(shù)4。這樣5813就是75569和52317的最大公約數(shù)。你要是用分解使因數(shù)的辦法,肯定找不到。
2、方法三:假設(shè)輸入的兩個(gè)整數(shù)為n1和n2,首先求n1和n2的最小值d,然后依次檢驗(yàn)d,d-1,d-2,….,1是否是n1和n2的公約數(shù),這樣找到的第一個(gè)公約數(shù)就是最大公約數(shù)。
3、所以在for循環(huán)里面,應(yīng)該是max=m*n哦。同理最小公約數(shù),可能是1,不過你那里大于0,沒問題的。你的函數(shù)可以實(shí)現(xiàn)功能,只是如果只是要得到最小公約數(shù)和最大公倍數(shù),不需要你那么麻煩吧,不是很明白你的需求額。
4、r 的最大公約數(shù)。Java code 求公約數(shù) public static int gcd(int p, int q){ if (q == 0) return p; int r = p % q; return gcd(q, r);} 公倍數(shù)就是兩個(gè)數(shù)的積除以最大公約數(shù)。