【正确答案】正确答案:void fun (int m, int *k,int xx []) { int i,j,n =0; for(i=4;i < m;i++)/* 找出大于1小于整数m的非素数*/ { for(j=2;j < i;j++) if (i%j==0) break; if(j < i) xx[n++]=i; } *k=n; /*返回非素数的个数*/ }
【答案解析】解析:本题考查:如何判断非素数;循环判断结构;数组的引用。 题目要求将1一m之间的非素数存入数组中,应使用循环判断结构。循环语句用来遍历1—m之间 的每个数,判断语句用来判断该数是否为素数,若不是素数,则将其存入数组中。本题是考查一个数是否为素数的简单延伸,只要掌握了判断素数的方法,问题便能顺利解决。 判定一个数是否为素数,即判断该数是否除了能被1和它本身整除外,不能被任何数整除。 代码实现如下: for(j=2;j < i;j++) if(i%j==0) /*如果余数为0,证明1不是素数*/ 此语句需要熟记,很多判断素数的题目可通过此法解决。