C/C++语言验证哥德巴赫猜想

2019-1-5 Linyuting.cn 程序设计

    C语言验证哥德巴赫猜想 ,有问题的话请留言指出。



#include<iostream>
#include<stdlib.h>
using namespace std;

//验证【哥德巴赫猜想】算法
//一般情况下,我们要从2开始到n-1逐个取素数,然后再和输入的数n进行验证
//但是,在这里,我们循环只需要取2到n/2就足够了
void s(int n) {
	int i, j, k, l, f1, f2;
	//从2到n-1遍历
	for (i = 2; i < n/2; i++) { 
		f1 = 0, f2 = 0;
		//找素数i
		for (j = 2; j < i/2; j++) { 
			if (i%j == 0) {
				f1 = 1;
				break;
			}

		}
		l = (n - i);
		//根据找到的素数i验证n-i是不是素数
		for (k = 2; k < l / 2; k++) {
			if (l%k == 0) {
				f2 = 1;
				break;
			}

		}
		//如果i和n-i都是素数,则输出
		if (!f1 && !f2) {
			printf("%d=%d+%d\n", n, i, l);
		}
	}
}

int main()
{
	int n;
	while (1) {
		printf("\nInput a number(n), (n>6 && N%2==0) : ");
		scanf_s("%d", &n);//vs下要求用scanf_s,所以改成了scanf_s
		s(n);
	}

	system("pause");
    return 0;
}


标签: C C++

发表评论:

本站由emlog驱动 粤ICP备15042739号