文章目录
前言素数判断1.之前说到1-100以内的素数以及判断一个数是否为素数(回顾一下,判断输入的数是否为素数代码如下)2.思考优化解法**在判断一个数是否为素数,首先应该想到的是除了1和它本身之外没有别的因数,**
那么逆向思考一下,如果这个数m有因素,就是说这数不是素数,那他在2到它本身m之间一定有一对数满足 a*b=m 0
前言
**上次讨论了什么是素数。以及判断素数的代码,现在来讨论一下更好的解法吧**
素数判断
1.之前说到1-100以内的素数以及判断一个数是否为素数(回顾一下,判断输入的数是否为素数代码如下)
public static void main(String[] args) {
Scanner scan = new Scanner(System.in);
int n = scan.nextInt();
int i;
for (i = 2; i
System.out.println(n + "不是素数");
break;
}
}
if (n==i){
System.out.println(n+"是素数");
}
}
}
2.思考优化解法
在判断一个数是否为素数,首先应该想到的是除了1和它本身之外没有别的因数,
那么逆向思考一下,如果这个数m有因素,就是说这数不是素数,那他在2到它本身m之间一定有一对数满足 a*b=m 0
if (n % i == 0) {
System.out.println(n + "不是素数");
break;
}
}
if (n==i){
System.out.println(n+"是素数");
}
}
}
最后还有一种更优方式,就是只用判断到m^(1/2)时,就能确定m是否为素数,可自行举例验证
public static void main(String[] args) {
Scanner scan = new Scanner(System.in);
int n = scan.nextInt();
int i;
for (i = 2; i
System.out.println(n + "不是素数");
break;
}
}
if (n==i){
System.out.println(n+"是素数");
}
}
}
总结
判断素数其实很简单啊,只要明白了素数定义,就很好懂了![在这里插入图片描述](https://img-blog.csdnimg.cn/c2bfb95b1bc04555bec0bebb07202479.jpg?x-oss-process=image/watermark,type_ZmFuZ3poZW5naGVpdGk,shadow_10,text_aHR0cHM6Ly9ibG9nLmNzZG4ubmV0L20wXzUxNTI5ODU3,size_16,color_FFFFFF,t_70#pic_center)
|