java 穷举_Java杂谈三之判断素数以及穷举素数

首先确认下什么是素数,又称质数

百度的定义解答:

质数(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

{

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

{

if(temp%i==0)

{

System.out.println(temp + "不是素数");

return;

}

}

System.out.println(temp + "是素数");

}

}

注意以上的代码中,对一个数的判断是否为素数,可以走两条路线:

一个是通过对小于自身的数的取余,如果能整除,直接结束函数,并说明不是素数,否则跳出循环并说明是素数。

另一个就是通过类似开关的概念,判断是一样的,只不过判断不是素数的时候,把开关置反,跳出循环,对开关进行判断,如果开关为真,则是素数。

两种方法最大的区别是到底是针对单独的一个数进行判断,还是对一组数进行判断。前者判断后直接结束程序,输出结果即可。后者则不可以沿用前者的,不能过早的结束程序,因为是一组数的判断,所以用开关的方法来判断再输出。

原文:http://blog.csdn.net/u010792238/article/details/38142603

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值