用C++程序验证验证哥德巴赫猜想

1.什么是哥德巴赫猜想

任意一个≥6的偶数,都可以表示为两个奇质数之和
 任意一个≥9的奇数,都可以表示为三个奇质数之和
输入一个整数,将它表示成奇质数和的形式输出
 例如:8=3+5;13=3+3+7,13=3+5+5;

相关代码如下

#include<iostream>
#include<cmath> 
using namespace std;
int i;
bool shushu(int n)
{
	if(n<=1) return 0;//1不是质数返回0 
	if(n==2) return 1;//2是质数 
	for(i=2;i<n;i++)
	 		{
	 			if(n%i==0) return 0;
	 			else if (n!=i+1) continue;
				else return 1;
	 	    }
} //判断质数的函数 
int main()
	{
		int a,b,c,m1,m2,d;
		cout<<"请输入要验证的偶数(该数>=6):";
		cin>>a;
		if (a%2==1)
		{
			cout<<"输入错误";
			return 0;
		}
		if (a<6)
		{
			cout<<"输入错误"; 
			return 0;//输入的数<6时结束该程序 
		}
		else
		{
			for (b=2;b<=a/2;b++)//把这个数分为两部分 
			{
	            c=a-b;
	            m1=shushu(b);
	            if(m1)//b是质数 
	            {
	            	m2=shushu(c);
	            	if(m2)//c是质数 
	            	{
						cout<<a<<"="<<b<<"+"<<c<<"  ";
						d++;
						if (d%4==0)
						cout<<endl;//每4个换行 
					}
				}
			}
		}
		cout<<"哥德巴赫猜想正确"; 
		return 0; 
	 }
#include<iostream>
#include<cmath> 
using namespace std;
int i;
bool shushu(int n)
{
	if(n<=1) return 0;
	if(n==2) return 1;
	for(i=2;i<n;i++)
	 		{
	 			if(n%i==0) return 0;
	 			else if (n!=i+1) continue;
				else return 1;
	 	    }
} //同上题 
int main()
{
	int a,b,c,d,m1,m2,m3,e,f;
	cout<<"请输入要验证的奇数(该数>=9):";
	cin>>a;
	if (a%2==0)
	{
		cout<<"输入错误";
		return 0;
	}
	if (a<9)
	{
		cout<<"输入错误"; 
		return 0;//输入的数<9时结束该程序 
	}
	else
	{
		for (b=3;b<=a;b++)   //先找出3-b的质数
		{
			m1=shushu(b); //如果是质数赋值给m1 
			if(m1)//如果b为质数执行以下程序 
			{
				c=a-b;//大于3的质数必然为奇数,所以C为偶数转换为问题(1) 
				for (e=2;e<=c/2;e++)//把这个数分为两部分 
				{
		            f=c-e;
		            if(b<=e)//保证b为最小值,以免重复 
		            {
			            m3=shushu(e);
			            if(m3)//b是质数 
			            {
			            	m2=shushu(f);
			            	if(m2)//c是质数
							{
							cout<<a<<"="<<b<<"+"<<e<<"+"<<f<<"  ";
							d++;
							if (d%4==0)
							cout<<endl;//每4个换行 
					        }
						}
					}
				}
		    }
		}	
	}
	cout<<"哥德巴赫猜想正确"; 
	return 0; 
}
#include<iostream>
#include<cmath> 
using namespace std;
int i;
bool shushu(int n)
{
	if(n<=1) return 0;
	if(n==2) return 1;
	for(i=2;i<n;i++)
	 		{
	 			if(n%i==0) return 0;
	 			else if (n!=i+1) continue;
				else return 1;
	 	    }
}
int main()
	{
		int a,b,c,d,m1,m2,m3,e,f;
		cout<<"请输入要验证的数(该数>=6):";
		cin>>a;
			if (a<6)
		{
			cout<<"输入错误"; 
			return 0;
	    }
		if (a%2==1)
		{
			for (b=3;b<=a;b++)
			{
				m1=shushu(b);
				if(m1)
				{
					c=a-b;
					for (e=2;e<=c/2;e++)//把这个数分为两部分 
					{
			            f=c-e;
			            if(b<=e)
			            {
				            m3=shushu(e);
				            if(m3)//b是质数 
				            {
				            	m2=shushu(f);
				            	if(m2)//c是质数
								{
								cout<<a<<"="<<b<<"+"<<e<<"+"<<f<<"  ";
								d++;
								if (d%4==0)
								cout<<endl;//每4个换行 
						        }
							}
						}
					}
			    }
			}	
		}
		else if(a%2==0)
			{
				for (b=2;b<=a/2;b++)//把这个数分为两部分 
				{
		            c=a-b;
		            m1=shushu(b);
		            if(m1)//b是质数 
		            {
		            	m2=shushu(c);
		            	if(m2)//c是质数 
		            	{
							cout<<a<<"="<<b<<"+"<<c<<"  ";
							d++;
							if (d%4==0)
							cout<<endl;//每4个换行 
						}
					}
				}
			}
			return 0; 
	 }

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值