首先要理解什么是质数:质数又称素数,有无限个。一个大于1的自然数,如果除了1和它自身外,不能被其他自然数整除(除0以外)的数称之为素数(质数);
这样子我们就可以看到不能被其它自然数整除那么我们分析如下:
1、肯定要除以比自己小的数
2、0和1除外
3、因为2就是质数、所以当是2的时候直接返回
4、我们要除以2-i所有的数,但是我们发现数是对称的,比如24,2*12、3*8、4*6、6*4、8*3、12*2
这些都是能得到24的数,所以我们只用计算到2-12就行了,不用再除以12以上的数,因为再除就是相同的
基于以上四点程序就可以写出来了
public static void main(String[] args)
{
Random rd = new Random(); //定义一个随机变量
int i = rd.nextInt(1000); //获取个随机数
System.out.println(isNum(i)); //输出结果
}
public static String isNum(int i )
{
String ret =i+"是质数"; //默认是质数
if(i==2)
return ret; //如果是2返回默认结果
for (int j = 2; j < i/2; j++) { //制订循环次数
if(i%j==0)
{
ret=i+"不是质数"; // 如果能够整除返回不是质数
break;
}
}
return ret; //返回结果
} |