所属年份:2010.9;2012.3
下列给定程序中,函数fun的功能是:找出一个大于给定整数m且紧随m的素数,并作为函数值返回。
请改正程序中的错误,使它能得出正确的结果。
注意:部分源程序在文件MODI1.C中,不要改动main函数,不得增行或删行,也不得更改程序的结构!
#include <stdlib.h> #include <conio.h> #include <stdio.h> int fun( int m) { int i,k; for (i=m+1; ; i++) { for (k=2; k<i; k++) /*************found**************/ if (i%k!=0) break; /*************found**************/ if (k<i) return(i); } } void main() { int n; system("CLS"); printf("\nPlease enter n: "); scanf("%d",&n); printf ("%d\n",fun(n)); }
【参考答案】
(1)if(i%k==0) (2)if(k==i)
【解题思路】
(1)判断当前数是否为素数,若存在一个数(除1和其自身)能整除当前数,则跳出本次循环,所以if条件应为i%k==0。
(2)如果i是素数,则循环结束时k==i,将该值返回。