1.4輸入整數m和n,求其最大公約數和最小公倍數

摩爾的Java學習筆記1.4

第一週作業:

1、輸出一行文字;

2、輸入一個字符串,判斷其中字母、數字、其他字符的個數;
3、編程實現從鍵盤依次輸入姓名(字符串)、年齡(整型)、性別(字符)和成績(浮點型),然後依次顯示上述內容;

4、輸入整數m和n,求其最大公約數和最小公倍數;
5、輸入若干個整數,求其最大值、最小值和平均值;
6、求出自然數101~199中的所有素數;

7、順序輸出1到100之間所有能被7整除的整數;
8、已知2000.1.1是星期六,根據任意給定的日期(2000年以後的),請編程計算出該天是星期幾;
9、猜數遊戲,隨機生成一個整數(0-100),用戶輸入他所猜的數,程序回答大了或者小了,用戶再輸入他所猜的數,直至猜對了爲止。

4、輸入整數m和n,求其最大公約數和最小公倍數;

//薛蓮婷
//輸入整數m和n,求其最大公約數和最小公倍數(3種方法求最大公約數)
import java.util.Scanner;

class Assignment3 {

    public static void main(String[] args) {

        Scanner sc=new Scanner(System.in);

        System.out.println("請輸入整數m和n:");

        int m=sc.nextInt();
        int n=sc.nextInt();

        int m0=m;               //存放m的原值
        int n0=n;               //存放n的原值

        if(m<n)                 //保證m>=n
        {
            int temp=m;
            m=n;
            n=temp;
        }

        //輾轉相除法(歐幾里德算法)     
        int r;                  //r是餘數
        while((r=m%n)!=0)
        {
            m=n;
            n=r;
        }


/*      //更相減損法(等值算法)
        int d;                  //d是差
        while((d=m-n)!=0)
        {
            if(d>n)
            {
                m=d;
            }
            else
            {
                m=n;
                n=d;
            }
        }


        //短除法
        int min=1;              //存放最大公約數
        for(int i=2;i<=n;i++)
        {
            while((m%i==0)&&(n%i==0))
            {
                m/=i;
                n/=i;
                min*=i;
            }
        }
        n=min;                  //在這個程序中,爲了三種方法的輸出語句的一致性考慮,用此句使n的值等於最大公約數
*/      

        System.out.println("最大公約數是:"+n+"\n最小公倍數是:"+(m0*n0/n));

        sc.close(); 
    }

}
發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章