第二次博客作业

1.我薄弱的知识点还有:函数的调用(特别是函数的递归调用)、      函数参数、     函数重载 、    程序的多文件组织 、    数组的应用等等,这些都是知识薄弱的地方。

1.)函数的调用——薄弱处在于函数名的定义、调用等的书写格式不太清楚。

2.)函数参数——懂得知识,但总不能灵活应用,涉及这部分内容,就总容易乱。

3.)函数重载——知识盲区,这部分内容到现在仍不太了解。

4.)程序的多文件组织——因作业没有应用过这部分内容,所以到现在仍不是很了解如何将多个文件组织起来。

5.)数组的应用——这部分内容我觉得学起来吃力,是一个难点,特别在字符串那部分。

 

2.题目

 

7-3 验证“哥德巴赫猜想” (10 分)
数学领域著名的“哥德巴赫猜想”的大致意思是:任何一个大于2的偶数总能表示为两个素数之和。比如:24=5+19,其中5和19都是素数。本实验的任务是设计一个程序,验证20亿以内的偶数都可以分解成两个素数之和。

 

#include <iostream>
#include <math.h>
using namespace std;
long prime( long x)                     //验证某个数是否为素数的函数,若为素数,返回真,否则,返回假。
{
long t,i=2;
t=sqrt(x);     

for( ;i<=t; )                               //X去除以1到根号下X的数,若出现除尽的情况,则不为素数。

{if(x%i==0) return false;
else i=i+1;}
return true;
}

int main()
{
long N,a,b;
cin>>N;
a=2;
b=N-a;                                      //输入的数N分解为另外两个数a,b.
do
{if (prime(a)&&prime(b))           //若a且b均可以为素数,则输出"N=a+b";                                   
{cout<<N<<" = "<<a<<" + "<<b;break;}
else {a=a+1;b=b-1;} }               //如果a或b不能为素数,则a增加1,b减少1,直至N的所有分解方式验证完。
while(a<=b);
return 0;
}

 (1)题目大意:验证任何一个大于2的偶数总能表示为两个素数之和。

(2)解题思路:如上。 

posted @ 2018-12-08 23:43  WL-windy  阅读(205)  评论(0编辑  收藏  举报