判断质数
一个整数,若值为0或1,则不是质数,如果大于1且不能被小于它的任一整数整除,就是质数,否则不是质数。其实可以缩小检验的范围,因为一个整数,如果不能被2和这个整数的平方根之见的任何一个整数整除,就不能被小于这个数的任意一个整数整除。
#include<stdio.h>
#include<math.h> //包含平方根函数sqrt的原型
int isprime(int m);
int main()
{
int m;
scanf("%d",&m);
if(isprime(m)) //如果是质数
printf("%d 是质数\n",m);
else printf("%d 不是质数\n",m);//如果不是质数
return 0;
}
int isprime(int m)
{
int i,k;
if(m==0||m==1)
return 0; //0或1不是质数
else
{
k=(int)sqrt(m);
for(i=2;i<=k;++i)
if(m%i==0)
return 0;
}
return 1;
}