[Java]題目:最大公因數/最小公倍數

Boom
May 17, 2021

--

<code>

package test;import java.util.Scanner;public class ex6 {public static void main(String[] args) {/*題目:輸入兩個正整數m和n,求其最大公約數和最小公倍數。ANS:輾轉相除法1.設r=a/b的餘數,若r=0,b為ans2.互換.a<-b,b<-r兩數的乘積=兩數的最大公因數*最小公倍數*/int m,n,temp=1,r=1;//temp為暫時儲存的數(交換需要),r為餘數int bigIn=0;//最大公因數int small=0;//最小公倍數Scanner input=new Scanner(System.in);System.out.println(“請輸入兩個正整數”);m=input.nextInt();//儲存mn=input.nextInt();//儲存nsmall=m*n;//兩數的乘積if(n>m){//交換,我們要保持第一個數為較大的數temp=m;m=n;n=temp;}//輾轉相除法try{r=m%n;//先算,才不會進去的時候r=1while(r!=0){//輾轉相除法m=n;n=r;r=m%n;}bigIn=n;//最後temp為0時,n為最大公因數small/=bigIn;//small=small*bigIn 最小公倍數=兩數的乘積/最大公因數System.out.printf(“最大公因數:%d\n最小公倍數:%d”,bigIn,small);}catch(ArithmeticException e){if(bigIn==0||small==0){System.out.printf(“最大公因數:%d\n最小公倍數:%d”,1,small);}}}}

<console>

--

--

Boom
Boom

Written by Boom

Boom Engineer | BOOM ⭐ 程式自學之旅 | 透過筆記釋放記憶體,記錄自己的程式筆記,『內化』成為這段旅程的養分,也分享給路過,正在經歷這趟旅程的你 | Java note begin at 2020.09 | Python note begin at 2021.03

No responses yet