原题链接:[编程入门]筛选N以内的素数
解题思路:1.当时竟然还想排除输入一以内的,然后怕过不去就没输入(zz行为)。
2.首先是了解质数(素数)的性质,即只能被一和自身整除(*扩展如果还能被其他数整除,那叫合数)。
3.初步思路打算用两个for循环,大循环是给数(自己输入的范围中的每个数),其次数另一for循环直接判断是否为素数。
4.然后是解决如何判断素数,这里我也没啥可厉害的法子,然后就定义了一个标志位,并定义其初始值为一(要是定义0的话要拐个弯),在判断素数的过 程中(俺用的是求余),有余数即进入if语句中并定义flag=0(意思是这个数不是素数了),也正是因为判断有结果了,所以应该用break跳出判断,节省时间(你说有啥浪费时间的,是吧,哈哈) 。
/--
注意事项:1.标志位记得要重置,不然只会出2。
2.printf要放在最外面的循环(就我一个人犯这个错误了,那就当我没说)。
/--
参考代码:
#include int main(void) { int data,i,x,flag=1; scanf("%d",&data); for(x=2;x<=data;x++) { for(i=2;i<x;i++) { if((x%i)==0)//如果能除尽,那说明为合数 { flag=0; break; } } if(flag==1) { printf("%d\n",x); } flag=1; } return 0; }
0.0分
16 人评分
C语言网提供由在职研发工程师或ACM蓝桥杯竞赛优秀选手录制的视频教程,并配有习题和答疑,点击了解:
一点编程也不会写的:零基础C语言学练课程
解决困扰你多年的C语言疑难杂症特性的C语言进阶课程
从零到写出一个爬虫的Python编程课程
只会语法写不出代码?手把手带你写100个编程真题的编程百练课程
信息学奥赛或C++选手的 必学C++课程
蓝桥杯ACM、信息学奥赛的必学课程:算法竞赛课入门课程
手把手讲解近五年真题的蓝桥杯辅导课程
发表评论 取消回复