验证歌德巴郝猜想任意一个大于等于4的偶数可写成两个素数之和; 任意一个大于等于7的奇数可写成三个素数之和。 1编写函数IsPrime判断整数n是否为素数; 2编写函数DreamEven对于一个大于等于4的偶数n 寻找两个素数a和b使得a+b=n并输出所有等式。 3编写函数DreamOdd对于一个大于等于7的奇数n 寻找三个素数a、b和c使得a+b+c=n并输出所有等式。 4编写函数main输入一个
代码基本正确,但是IsPrime函数可以优化。
优化建议:
- 循环条件可以优化为i<=sqrt(n),减少不必要的循环次数。
- 只需要判断能否整除2到sqrt(n)之间的数即可,不需要循环到n。
- 可以将返回值改为bool类型,更直观。
改进后的IsPrime函数如下:
bool IsPrime(int n) { if(n <= 1) return false; //小于等于1的数都不是素数 for(int i=2; i<=sqrt(n); i++) //循环到sqrt(n)即可 if(n%i == 0) return false; //能够整除,不是素数 return true; //不能整除,是素数 }
原文地址: https://www.cveoy.top/t/topic/ecvC 著作权归作者所有。请勿转载和采集!