问题 问答题

请编写一个函数prim(int num),该函数实现判别参数num是否为素数,在主函数中利用prime()函数验证哥德巴猜想——任何比2大的偶数都可表示为两个素数之和基本功能,根据main函数的调用情况给出正确的返回值。 注意:部分源程序已存在文件test36_2.cpp中。 请勿修改主函数main和其他函数中的任何内容,仅在函数prim的花括号中填写若干语句。 文件test36_1.cpp的内容如下: #include <iostream.h> const LEN=100; int prim(int num){ } void main() {int a=7;int cnt=0;cout<<"a is 7:\n";int *s;s=new int[LEN];for(int i=2;i<a;i++){ if(!prim(i)) {s[cnt]=i;cnt++; } } for (i=0;i<cnt;i++) { for (int j=i+1;j<cnt;j++) { if (s [i] +s [j] ==a) cout<<s[i]<<’\t’<<s[j]<<’\t’<<end1; } } }

答案

参考答案:

解析:int prim(int num) { int half,flag; flag =0; half=num/2; for (int i=2;i<=half;i++) { if(num%i==O) flag=1; else continue; } if (flag==1) return 1; else return 0; } 本题考查的是考生对一般应用的综合考查,主要是对于for函数使用的应用。其基本算法如下:从2开始到该数的一半进行穷举,每个数都对参数nam进行整除,如果发现有任何一个数能够整除num,则标志变量flag变为1,最后返回的时候,返回值根据标志flag分别返回——能整除flag为1,返回“不能整除flag为0,返回0。

解答题
单项选择题