Java编程练习系列一:获取给定范围内的所有素数
2016-07-17 12:33
344 查看
素数的数学定义
质数(prime number)又称素数,有无限个。除了1和它本身以外不再被其他的除数整除。根据算术基本定理,每一个比1大的整数,要么本身是一个质数,要么可以写成一系列质数的乘积,最小的质数是2。那么在编程中怎么去定义素数
在一般领域,对正整数n,如果用2到
![](http://a.hiphotos.baidu.com/baike/s%3D21/sign=290269626359252da7171a05359bf970/b03533fa828ba61e582843574234970a314e5980.jpg)
之间的所有整数去除,均无法整除,则n为质数。质数大于等于2
不能被它本身和1以外的数整除。
实现Java代码
/** * Get all the prime numbers between start and end * @author Administrator * */ import java.util.ArrayList; import java.util.List; public class Test01 { public List<Integer> showPrimeNumber(int start,int end){ List<Integer> primeNumbers=new ArrayList<Integer>(); int tempSqrt=0; boolean isPrimeNumber=true; for(int i=start;i<end;i++){ isPrimeNumber=true; if(i>3){ tempSqrt=(int)Math.sqrt(i); for(int j=2;j<=tempSqrt;j++){ if(i%j==0){ isPrimeNumber=false; } } } else if(i<2){ isPrimeNumber=false; } else { isPrimeNumber=true; } if(isPrimeNumber){ primeNumbers.add(i); } } return primeNumbers; } }
测试代码:
public class MTest { public static void main(String[] args){ int start=1; int end=1000; Test01 t01=new Test01(); List<Integer> myList=t01.showPrimeNumber(start, end); System.out.println(String.format("%d--%d之间的素数是:",start,end)); int i=0; for(int item:myList){ System.out.print(item); System.out.print("\t"); i++; if(i%10==0) { System.out.println(); } } } }
测试结果:
素数表
相关文章推荐
- 《我的世界》检测不到java怎么办?
- javaweb记录
- Java多线程 之 lock与condition的使用(十四)
- Java 匿名类不能拥有一个构建器
- Rxjava入门
- RxJava 学习资料大全
- 在Windows下的Eclipse中如何将WordCount程序提交到集群运行
- 文本文件关键字替换(Java)
- Struts1与Struts2原理 区别 详解 汇总
- 在Mac OS X上安装VirtualBox 和 Vagrant搭建Java web本地开发环境
- Java 中新增的 foreach 的用法
- Java 匿名类示例
- Java中的final关键字
- 关于Hibernate Spring structs的学习
- quartz任务调度整合springMVC学习一
- Head First Java笔记(四)
- j2ee是什么?(1)
- J2EE建议的学习路线
- java的main函数中的args数组传值问题
- Java的内部类详解