您的位置:首页 > 编程语言 > Java开发

1.4输入整数m和n,求其最大公约数和最小公倍数

2017-03-04 15:49 288 查看

摩尔的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();
}

}
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
相关文章推荐