58-验证哥德巴赫猜想

#include <stdio.h>
#include <stdlib.h>





//判断一个数字是不是素数
int isPrame(int value){
    //如果这个数字小于3就是素数 
	if(value<=3){
		return 1;
	}
	int i;
	for(i=2;i<value;i++){
		if(value%2==0){
			break;
		}
	}
	
	if(value==i){
		return 1;
	}else{
		return 0;
	}
} 


main() {
   //循环变量i
   int jianshu,beijianshu,cha; 
   //验证通过的数字个数 
   int count=0;
   //1-2000偶数的个数
   int countou=0; 
    //被减数范围1-2000 
   for(beijianshu=1;beijianshu<=2000;beijianshu++){
   	     //判断被减数是不是偶数
			if(beijianshu%2==0){
				countou++;
   	    	//减数的范围 
		   for(jianshu=1;jianshu<beijianshu;jianshu++){
		   	//如果减数和差都是素数 
	   		if(isPrame(jianshu)==1&&isPrame(beijianshu-jianshu)==1){
	   			//验证通过的数字个数 ++ 
	   			count++;
	   			//因为满足条件的个数很多,所以有一个可以即可,如,4=1+3;4=2+2;4=3+1;都是可以的,所以满足一个即可 
	   			break;
				}
	   		} 
	  	} 
   } 
   
	 //如果验证的偶数的个数等于1-2000的偶数的个数,猜想正确 
	 if(count==countou){
	 	printf("猜想正确!%d",count);
	 }
}


验证歌德巴赫猜想
所谓歌德巴赫猜想是说任何一个大于2的偶数都能表示成为两个素数之和。应用计算机工具可以很快地在一定范围内验证歌德巴赫猜想的正确性。请编写一个C程序,验证指定范围内歌德巴赫猜想的正确性,也就是近似证明歌德巴赫猜想(因为不可能用计算机穷举出所有正偶数)。
题目分析:
可以把问题归结为在指定范围内(例如:1~2000内)验证其中每一个偶数是否满足歌德巴赫猜想的论断,即是否能表示为两个素数之和。如果发现一个偶数不能表示为两个素数之和,即不满足歌德巴赫猜想的论断,则意味着举出了反例,从而可以否定歌德巴赫猜想。

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

会编程的阿强

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值