【C语言循环结构题目】证明一定范围内(输入范围)的哥德巴赫猜想的正确性

【题目描述】哥德巴赫猜想是说任何一个大于2的偶数都能表示成两个素数之和。编写一个C程序,验证指定范围内哥德巴赫猜想的正确性,区间内的范围要从键盘输入。

【代码】

#include <stdio.h>

int main()
{
	int a, b,d,m,n,s1,s2;
	int flag = 0;
	printf("请输入验证的范围,均要求大于等于4:(如:1,2)");
	scanf_s("%d,%d", &a, &b);
	if (a % 2 == 0)
	{
		for (d = a; d <= b; d += 2)
		{
			for (m = 2; m <= d - 2; m++)
			{
				for (n = 2; n <= m - 1; n++)
				{
					if (m % n == 0) break;
				}
				if (n >= m)
				{
					s1 = d - m;
					for (s2 = 2; s2 <= s1 - 1; s2++)
					{
						if (s1 % s2 == 0) break;
					}
					if (s2 >= s1)
					{
						printf("%d是满足条件的偶数\n", d);
						flag = 1;
						break;
					}
					else flag = 0;
				}
				else flag = 0;
			}
		}
	}
	else
	{
		for (d = a+1; d <= b; d += 2)
		{
			for (m = 2; m <= d - 2; m++)
			{
				for (n = 2; n <= m - 1; n++)
				{
					if (m % n == 0) break;
				}
				if (n >= m)
				{
					s1 = d - m;
					for (s2 = 2; s2 <= s1 - 1; s2++)
					{
						if (s1 % s2 == 0) break;
					}
					if (s2 >= s1)
					{
						printf("%d是满足条件的偶数\n", d);
						flag = 1;
						break;
					}
					else flag = 0;
				}
				else flag = 0;
				}
			}
		}
	if (flag == 1)
	{
		printf("在此范围内哥德巴赫猜想是正确的\n");
	}
	if (flag == 0)
		printf("在此范围内哥德巴赫猜想是错误的\n");
	return 0;
	}

【说明】输入两个数值存入a,b,要判断一下a的奇偶性,如果是奇数,那么这个判断的偶数要从a+1开始,如果是偶数,那么直接从a开始。

然后再去遍历素数,第一个素数的范围是2到(这个偶数),第二个数的范围是2到(这个偶数减去第一个素数),如果找的这个第二个数是一个素数,那么就证明这个偶数是符合条件的,把flag值设为1。否则flag就是0。

值得注意的是,第二个素数一经找到,也即知道这个偶数是符合的,要break退出循环,因为这时是循环嵌套,找到后可能还会遍历多次,改变结果。

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值