Determine if a number is prime

Here is the method of writing code slices: Is 2~m-1 divisible?
int prime(int m)
{
    int i;
    if(m==0) return 0;
    if(m==1) return 0;//Consider the case of 0 and 1
    for(i=2;i<m;i++)//No equal sign
    if (m%i==0) break;
    if(i<m) return 0;//It is wrong to use if(i>=m) return 1;
    else return 1;
 }


 Method 2: Is 2~sqrt(m) divisible?
 int prime(int m)
{
    int i;
    if(m==0)return 0;
    if(m==1) return 0;
    for(i=2;i<=sqrt(m);i++)//有等号
    if (m%i==0) break;
    if(i<=sqrt(m)) return 0;//is a prime number
    else return 1; // uncorrected prime number
 }
  Method 3 (improvement of method 2)
 int prime(int m)
{
    int i;
    int k=floor(sqrt(n)+0.5);//Avoid repeated calculation of sqrt, avoid floating point errors by rounding, 1.9999, m=sqrt(m), "0.9999 will be truncated directly and only 1 will be left"
    if(m<=1) return 0;
    for(i=2;i<=k;i++)//有等号
    if (m%i==0) return 0;
    else return 1; // uncorrected prime number
 }
Forwarding link: http://blog.csdn.net/mengzhizhizhi/article/details/72871063

Guess you like

Origin http://43.154.161.224:23101/article/api/json?id=325608578&siteId=291194637