最近在自学编程,找出了大一时学C语言的教材,有一道循环结构的课后习题需要用C语言实现验证哥德巴赫猜想,觉着挺有趣,就把写代码的过程记录下来。
实现思路
首先要知道哥德巴赫猜想的内容:
“任意一个大于等于6的偶数,都可以表示为两个素数的和。”
这个问题中最重要的是素数的实现过程,素数的概念是除1和它本身之外,没有其他的约数。我的思路为:
- 用键盘接收一个大于等于6的偶数,定义变量num接收;
- 使用for循环遍历2~num/2之间的数,找到这些数中的素数n1;
- 找到n1之后继续使用for循环遍历num/2~num之间的数,找到这些数中的素数n2,当n1+n2 == num时输出表达式。
上代码:
int num = 0;//用于接受从键盘上输入的大于等于6的偶数 int i, j;//定义循环变量 int n1 = 0;//初始化第一个素数 int n2 = 0;//初始化第二个素数 printf("请输入一个大于等于6的偶数:"); scanf_s("%d", &num); if (num >= 6) { for (n1 = 2; n1 < (num / 2); n1++){//遍历2~num/2之间的数,作为第一个素数 for |