质数又称为素数,是指大于1的并且除了1和它本身外,没有其他因数的自然数。
假设该数为n, 我们只需要判断[2, n \sqrt{n}n
试除法代码:
public static Boolean isprime(int n){ if(n == 1) return false; for(int i = 2; i <= n / i; i++){ if(n % i == 0){ return false; } } return true; }
注意:以上代码中,for循环的结束条件是 i <= n/i
,相当于i <= sqrt(n)
,两种写法都可以,只不过调用sqrt()函数会慢一些,因为for循环每次循环都会调用该函数。另外,不能写成i * i <= n
因为当n很接近int的最大值时,i*i可能会溢出。
原文:https://www.cnblogs.com/de-ming/p/13723546.html