编写一个程序判断是否为素数(判断是否为素数)
判断是否是质数最直观和简单的方法就是从2开始直接除,能除尽(余数为0)就不是质数。
则C语言实现为:int isprime(int m){int i;for(i=2;i 可以改进一下,根据如果一个数是合数,那么它的最小质因数肯定小于等于它的平方根。 用反证法可以证明一下。 假设x是n的最小质因数,则存在n/x=p。 p>x,x*p=n。 如果x不小于等于它的平方根,则x*x>n,而p>x,故x*p>n,假设不成立。 合数是与质数相对应的自然数。 一个大于1的自然数如果它不是合数,则它是质数。 也就是说如果一个数能被它的最小质因数整除的话,那它肯定是合数,即不是质数。 所以判断一个数是否是质数,只需判断它是否能被小于它开跟号后的所有数整除,因此,这样做的运算少了很多,降低了时间复杂度。