1.1742年哥德巴赫做了如下的猜想:每一个大于
6的偶整数都是两个奇数之和。到今为止,这个
猜想还没有被证明成不成立。计算机已经被广
泛用于证明这个猜想,但还没有发现反例。编
写一个程序证明对于在符号常量BEGIN至END
之间的偶整数这一猜想成立。 例如,如果你写 #define BEGIN 700 #define END 1100 那么你的程序的输出应该如下: 700=17+683;
702=11+691; …… 1100=3+1097; 2.长整型(long int)可以表示的数值范围为-2*(10
的9次方)至2*(10的9次方),请写一个程序,可以让
用户分别输入0至(10的20次方)的两个数,计算这
两个数的和,差,积,并输出.
----------------解决方案--------------------------------------------------------
哥德巴赫做了如下的猜想:每一个大于6的偶整数都是两个素数之和,而非两个奇数之和。
----------------解决方案--------------------------------------------------------
#include "iostream.h" #include "math.h" ////////////////////////// #define BEGIN 700 #define END 1100 //////////////////////////// int IsPrime(int n){ int i,k; k=sqrt(n); for(i=2;i<=k;i++) if(n%i==0)//n不是素数 { return 0; } if (i>k+1) return 1; } void main(){ int j,i; for(j=BEGIN;j<=END;j+=2) { for(i=3;i<j/2;i+=2) if((IsPrime(i)&&IsPrime(j-i))) { cout<<j<<"="<<i<<"+"<<j-i<<endl; break; } if(i>=j/2) cout<<j<<"is not a prime!"<<endl; } }
一个偶数可以表示成两个素数字和的形式有多种,这个程序之输出一种,稍作修改可以将其全部输出。
----------------解决方案--------------------------------------------------------