没有合适的资源?快使用搜索试试~ 我知道了~
资源推荐
资源详情
资源评论
JAVA 基础 第一篇:素数、合数、质数分解、最大公约数、最小公倍数
目录
JAVA 基础 第一篇:素数、合数、质数分解、最大公约数、最小公倍数................ .1
简介.............................................................................................................................................. 1
质数、合数................................................................................................................................. 2
质数分解...................................................................................................................................... 4
最大公约数、最小公倍数...................................................................................................... 8
简介
JAVA 自诞生至今已经有 20 多年了,在编程界可谓是常青树般地存在,也是
目前非常流行的计算机编程语言之一。它的应用领域非常广,比如我们熟知的
手机 APP,尽管它们运用了不同的 JVM 以及不同的封装方式,但主要代码还是
用 JAVA 语言编写。当然还有许多其他领域。
在我们接触 JAVA 初期,会有几块特殊的敲门砖:JAVA 关键字、系统自带的
直接和 Console 平台对话的 main()方法、循环语句、条件语句……
关于这些 JAVA 基础在此就不一一累述了。
我们在 JAVA 学习初期时,会习惯性地将代码统一编写在 main()方法中。久
而久之我们会发现许多问题:在不同的程序体系中我们经常需要重新编写相同
的代码,以至造成了时间的不够支配;如果 main() 方法中处理的数据比较多,
那很容易造成代码的冗余现象,而在编程领域,代码冗余是最为忌讳的。那我
们就得考虑能否像 main()方法一样自定方法,而在 main()方法中我们除了调用
相应的方法,仅仅输入相关的输出信息?答案是可以的。
在此,我们先设计一个自定方法,这个方法用以判断某个数是否为质数,
之所以优先选择它,是因为这里面牵涉到了最为基础的条件语句、循环体,并
且这个方法的使用范围比较广。在此先申明一下,为了以后能够将其应用到超
过 int 型取值范围以及除法运算的领域中,在此我利用 BigDecimal 。
质数、合数
相关代码:
/**
* @param number
* @return
*/
private static boolean primeNumber(BigDecimal number)
{
for (BigDecimal a = BigDecimal.valueOf(2);
a.compareTo(number) < 0; a = a.add(BigDecimal.ONE)) {
if (number.remainder(a).equals(BigDecimal.ZERO))
return false;
}
return true;
}
这个方法是根据质数的含义来设定的。这个方法确定了下来,在以后其他
的方法体内只要涉及到质数或者合数,我们都可以利用判断语句调用这个方
法,如果项目要求为质数,我们只需这么写 if (primeNumber(number))
{ } ; 同 样 , 如 果 项 目 要 求 为 合 数 , 我 们 只 需 这 么 写 if (!
primeNumber(number)) { }。而非每段代码中都重复编写。
我们先来看看质数、合数的运行结果。
我们在 main()方法中输出这么一段代码:
BigDecimal count = BigDecimal.ZERO;
for (BigDecimal number = BigDecimal.valueOf(2);
number.compareTo(BigDecimal.valueOf(100)) <= 0; number =
number
.add(BigDecimal.ONE)) {
if (primeNumber(number)) {
System.out.print(number + "\t");
count = count.add(BigDecimal.ONE);
if
(count.remainder(BigDecimal.TEN).equals(BigDecimal.ZERO))
System.out.println();
}
}
System.out.println();
System.out.println();
count = BigDecimal.ZERO;
for (BigDecimal number = BigDecimal.valueOf(2);
number.compareTo(BigDecimal.valueOf(100)) <= 0; number =
number
.add(BigDecimal.ONE)) {
if (!primeNumber(number)) {
System.out.print(number + "\t");
count = count.add(BigDecimal.ONE);
if
(count.remainder(BigDecimal.TEN).equals(BigDecimal.ZERO))
System.out.println();
}
}
}
运行结果:
2 3 5 7 11 13 17 19 23 29
31 37 41 43 47 53 59 61 67 71
73 79 83 89 97
4 6 8 9 10 12 14 15 16 18
20 21 22 24 25 26 27 28 30 32
剩余10页未读,继续阅读
资源评论
人杰鬼雄
- 粉丝: 2
- 资源: 6
上传资源 快速赚钱
- 我的内容管理 展开
- 我的资源 快来上传第一个资源
- 我的收益 登录查看自己的收益
- 我的积分 登录查看自己的积分
- 我的C币 登录后查看C币余额
- 我的收藏
- 我的下载
- 下载帮助
安全验证
文档复制为VIP权益,开通VIP直接复制
信息提交成功