哈喽大家好,这是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不是质数。
整体代码如下:
运行结果:
老样子,现在把代码改成可以判断任何数字的。定义一个变量n存放用户输入的数字,把代码中的5改成n,4改成n-1就可以了。
我们还要加一个防护措施,先对n进行一个判断,如果n<2,输出“您输入的数字不合法。”,就不用了执行下面的代码了;如果你>=2,则老老实实的执行代码,加工后的代码如下:
看下运行效果:
结果没有问题,说明代码是正确的。
今天的分享就到这里了,怎么判断一个数是不是质数,你学会了吗?
欢迎各位大佬前来指点一二,让小弟也多学一点知识,感谢!!!!!!!!!