Java杂谈三之判断素数以及穷举素数
来源:互联网 发布:淘宝企业开店店铺名称 编辑:程序博客网 时间:2024/05/31 19:07
首先确认下什么是素数,又称质数
百度的定义解答:
质数(prime number)又称素数,有无限个。一个大于1的自然数,如果除了1和它本身
外,不能被其他自然数整除(除0以外)的数称之为素数(质数)
明确了素数的定义后,下面用java来判断素数以及穷举2-999以内的素数,还是一样,主
要看的是对一个数进行判断或者对一组数进行判断的思想,至于怎样判断的,百度的定义已经给了很好的解答思路。
JavaPrimeNubmer:类名
enumPrimeNumber():穷举2-999以内的所有素数
main():主函数
package JavaTestSelf;import java.util.Scanner;//从键盘输入一个数,判断是否为素数public class JavaPrimeNumber {//穷举2-999以内的所有素数public void enumPrimeNumber(){for(int i=2;i<1000;i++){//设置一个"开关"boolean IsPrimeNubmer = true;for(int j=2;j<i;j++){if(i%j==0){//这边不可以用return直接结束程序//因为它要继续下去判断下一个数是否为素数//用return结束就不继续执行下去了//return只限于判断单个数是否为素数//这里要用到一个IsPrimeNubmer"开关"IsPrimeNubmer=false;}}if(IsPrimeNubmer==true){System.out.println(i + "是素数");}}}public static void main(String[] args) {//实例化类的对象JavaPrimeNumber javaPN = new JavaPrimeNumber();//穷举2-999以内的所有素数javaPN.enumPrimeNumber();//以下是判断从键盘上输入的数是否为素数System.out.println("请输入一个数:");Scanner scan = new Scanner(System.in);int temp = scan.nextInt();for(int i=2;i<temp;i++){if(temp%i==0){System.out.println(temp + "不是素数");return;}}System.out.println(temp + "是素数");}}
注意以上的代码中,对一个数的判断是否为素数,可以走两条路线:
一个是通过对小于自身的数的取余,如果能整除,直接结束函数,并说明不是素数,否则跳出循环并说明是素数。
另一个就是通过类似开关的概念,判断是一样的,只不过判断不是素数的时候,把开关置反,跳出循环,对开关进行判断,如果开关为真,则是素数。
两种方法最大的区别是到底是针对单独的一个数进行判断,还是对一组数进行判断。前者判断后直接结束程序,输出结果即可。后者则不可以沿用前者的,不能过早的结束程序,因为是一组数的判断,所以用开关的方法来判断再输出。
0 0
- Java杂谈三之判断素数以及穷举素数
- Java杂谈之二----怎样判断一个数是水仙花数以及穷举水仙花数
- java之简单的判断素数算法
- 判断素数、输出素数以及对称素数---C++
- ACM之判断素数
- 函数之判断素数
- 三种常用的素数判断方法以及适用场景
- 素数判断的三种方法以及简单实现!
- JAVA判断素数
- Java判断素数
- java判断素数(质素)
- Java判断素数方法
- Java判断素数
- java判断素数
- 素数判断 Java
- 穷举法求素数
- 穷举法---孪生素数
- 【Java学习之路】Java编程之判断素数
- Kivy A to Z -- Kivy的消息处理机制
- PrepareStatement与Statement之间的区别
- spring集成 quartz
- 程序猿的未来与学习建议
- JAVA 线程池使用
- Java杂谈三之判断素数以及穷举素数
- jQuery_review之table中根据行选中,进行背景变色和radio选中
- UDP
- getch getche getchar的区别和缓冲区的概念
- 关于使用UDP套接字进行本地进程通信
- 假期算法学习
- 同过apache-commons-id.jar生成32为主键id
- rdryfyuguiygiuti
- ZOJ 1649 Rescue