这段代码什么意思

public static boolean isPrime(int a) {


boolean flag = true;


if (a < 2) {// 素数不小于2

return false;

} else {


for (int i = 2; i <= Math.sqrt(a); i++) {


if (a % i == 0) {// 若能被整除,则说明不是素数,返回false


flag = false;

break;// 跳出循环

}

}

}

return flag;

}


狼顾之相1995
浏览 1547回答 4
4回答

JustWannaHugU

同学,你不明白的地方是for (int i = 2; i <= Math.sqrt(a); i++)吗?这是一个素数运算定理,已经证明出来的,可以拿来直接用定理: 如果n不是素数, 则n有满足1<d<=sqrt(n)的一个因子d.证明: 如果n不是素数, 则由定义n有一个因子d满足1<d<n.如果d大于sqrt(n), 则n/d是满足1<n/d<=sqrt(n)的一个因子.它的时间复杂度O(sqrt(n)/2), 比普通的素数算法速度提高O((n-sqrt(n))/2).

椰蓉罐头

判断一个数是不是素数,继续循环flag是true,终止循环flag等于flase 望采纳哦~

摩诃迦叶

。。。。。 这段代码的注释感觉已经写的很清除了呀。    就是判断一个数是不是素数。 你还想知道什么?
打开App,查看更多内容
随时随地看视频慕课网APP

相关分类

Java