请编写一个函数prim(int num),该函数实现判别参数num是否为素数,在主函数中利用prime()函数验证哥德巴猜想——任何比2大的偶数都可表示为两个素数之和基本功能,根据main函数的调用情况给出正确的返回值。 注意:部分源程序已存在文件t

admin2010-02-08  31

问题 请编写一个函数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 +s [j] ==a)
                   cout<<s<<’\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。
转载请注明原文地址:https://jikaoti.com/ti/hFkiFFFM
0

最新回复(0)