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 double counting sqrt, avoid floating point error by rounding, 1.9999, m=sqrt(m), "0.9999 will be truncated directly and only 1" 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
Determine if a number is prime
Guess you like
Origin http://43.154.161.224:23101/article/api/json?id=325608627&siteId=291194637
Recommended
Ranking