用筛法求100以内的素数
- 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
- 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
- 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。
1. 用筛法求100以内的素数。
算法:先将1~100放置于一个一维数组中,然后依次判断每个数是否素数,若不是素数将该元素置0,最后输出不为0的数。
如何判断一个数是否素数?素数定义是只能被1和本身整除的数,设置除数n=2~a[i]-1
特殊的两个数1、2,不需要判断
定义变量:int a[100],i,n;
输入数据:循环赋值,for(i=0;i<100;i++) a[i]=i+1;
处理:双重循环,外层循环控制访问数组元素,内层循环控制除数的变化
for(i=2;i<100;i++) for(n=2;n<=a[i]/2;n++) if(a[i]%n==0) a[i]=0;
输出:for(i=0;i<100;i++)if(a[i]!=0) printf(“%3d”,a[i]);
2. 编写一个程序,计算若干学生的某门功课的平均成绩、标准差,找出最高分和最低分。算法:循环输入成绩,需要求和,然后求平均成绩;循环sqrt(求和(xi-aver)*(xi-aver))定义变量:float grade[N],max,min,aver,bzc,sum;int i;
输入数据:for(i=0;i 处理:sum=0; max=min=grade[0];for(i=0;i if(max aver=sum/N; sum=0; for(i=0;i bzc=sqrt(sum/N); 输出结果 3.编写一个程序,让计算机产生20个随机数,用选择法排序。 98 36 54 18 65 23 48 78 84 8 for(i=0;i {p=i;for(j=i+1;j if(p!=i) { t=a[p];a[p]=a[i];a[i]=t;}} 设置一个变量p,去记住最小值的下标, 4. 根据上题的内容1,编一程序在数组中查找一个数。要求: ⑴若有该数,则输出该数,否则输出找不到的信息; ⑵用顺序查找实现; ⑶用折半查找实现。 顺序查找:输入要查找的数x,for(i=0;i if(flag) printf(“zhao dao le\n”); else printf(“Not found\n”); 如何说找不到?设置标志变量flag=0