【C语言】如何判断一个数字是否为素数(质数)? | 您所在的位置:网站首页 › c语言质数判断代码 › 【C语言】如何判断一个数字是否为素数(质数)? |
#函数 文章目录 如何判断素数方法1---试除法代码改造1-1方法2---开平方法两个方法分别的弊端试除法开平方法 感谢你看到最后 如何判断素数题目要求:输出100-200的素数 首先我们要知道什么是素数(质数),以防有人忘记(比如刚学开始学c的我就忘记了) 素数(质数)只能被1和它自己整除 7只能被1和7整除,是素数9能被3整除,不是素数 方法1—试除法 #include int main() { int i=0; int count=0; for(i=100;i if(i%j==0)//i可以整除j,i不是素数 { break; } } if(j==i)//i只能整除它自己,是素数 { count++; printf("%d ",i); } } printf("\ncount=%d\n",count);//计算100-200之间有几个素数 return 0; }这个代码比较死,只是输出了100到200之间的素数,完成了题目的要求 我们可以把它改造成输入一个数字,判断是否是素数的形式 代码改造1-1 用户输入一个数字代码判断是否为素数是,输出“是素数”以及用户输入的值不是,输出“不是素数” #include int main() { int i=0; int j=0; scanf("%d",&i); for(j=2;j printf("不是素数\n"); break; } } if(j==i) { printf("是素数,i=%d\n",i); } }结果如下: 上面的这串代码能很好地完成我们的需求,但它还有优化的空间 方法2—开平方法方法1中的for循环为j int j=0; for(j=2;j break; } } if(j>sqrt(i)) { printf("%d ",i); } } return 0; } 将这个代码改造成1-1那种形式也不难,自己试试吧! 两个方法分别的弊端 试除法该方法会错过1 开平方法该方法会错过2 感谢你看到最后如果这篇博客对你有帮助,请点赞支持一下,万分感谢! |
CopyRight 2018-2019 实验室设备网 版权所有 |