哈喽大家好,这是java小白成长记!

昨天分享了怎么判断一个数是不是回文数,目的是为了巩固一下if选择语句和求余数运算符,今天分享一下怎么判断一个数是不是质数,可以巩固for循环、if选择语句、还有没怎么使用过的基本数据类型Boolean。

思路:

首先要知道的质数的概念是什么。

质数:一个大于1的自然数如果它的因数只有1和它本身,这个数就是质数。

概念理解了,但是怎么去判断呢?

那5来举例子,想要判断5是不是质数,就用5对2求余数、对3求余数、对4 求余数,至于要一个的结果为0,就说明5不是质数,因为结果为0 说明5可以被那个数整除,自然就不符合概念了。为什么不对1和5求余数?因为因为任何数对1和本身求余数的结果都是0,没有意义。

用汉语知道原理是什么了,但是用java语句怎么实现呢?

因为5对2、3、4都要求余数,如果用三个if太麻烦,所以肯定要用循环,我这里就用for循环了。所有肯定有这样一段代码:

for(int i =2;i<=4;i++){
5 % i ==0;
}

这还并不完整,因为5 % i ==0以后不知道要干嘛了,但是我们心里知道如果5 % i ==0,就意味着5不是质数了,但是用java语句不太容易直接表达,所以就要使用基本数据类型boolean,首先定义一个变量shiZhiShu,初始值为true:boolean shiZhiShu=true;当5 % i ==0时,shiZhiShu=flase;

代码这样写:

boolean shiZhiShu=true;
for(int i =2;i<=4;i++){
 if (5 % i ==0){
 shiZhiShu = flase;
 break;
 }
}

break是退出循环,如果 shiZhiShu = flase就表示5不是质数了,也就没有必要继续尝试了,直接退出循环就行了。

然后就可以输出结果了。

if (shiZhiShu){
 System.out.println("5是质数");
}else {
 System.out.println("5不是质数");
}

如果shiZhiShu为true,代表5是质数,反之,5不是质数。

整体代码如下:




java 判断一个数开方是整数 java判断一个数是不是质数_java判断上一个方法返回值


运行结果:


java 判断一个数开方是整数 java判断一个数是不是质数_求余_02


老样子,现在把代码改成可以判断任何数字的。定义一个变量n存放用户输入的数字,把代码中的5改成n,4改成n-1就可以了。

我们还要加一个防护措施,先对n进行一个判断,如果n<2,输出“您输入的数字不合法。”,就不用了执行下面的代码了;如果你>=2,则老老实实的执行代码,加工后的代码如下:


java 判断一个数开方是整数 java判断一个数是不是质数_for循环_03


看下运行效果:


java 判断一个数开方是整数 java判断一个数是不是质数_求余_04


java 判断一个数开方是整数 java判断一个数是不是质数_求余_05


java 判断一个数开方是整数 java判断一个数是不是质数_java 判断一个数开方是整数_06


结果没有问题,说明代码是正确的。

今天的分享就到这里了,怎么判断一个数是不是质数,你学会了吗?

欢迎各位大佬前来指点一二,让小弟也多学一点知识,感谢!!!!!!!!!