算法学习之旅,初级篇(18)--哥德巴赫猜想

来源:互联网 发布:json对象转化成数组 编辑:程序博客网 时间:2024/05/22 15:53

介绍

哥德巴赫猜想是指任何一个大于5的偶数等于两个素数之和。给你一个整数,请验证哥德巴赫猜想。

分析

枚举6到n的数,可以被两个素数表示。

代码

#include "stdio.h"
#include "math.h"
#include<stdlib.h>
bool IsPrime(int x)
{
int t;
for(t=2;t<x;t++)
if(x%t == 0)
        return false;
return true;
}
int main()
{

int i,m_num,n;
int k=0;
printf("请输入整数n:\n");
scanf("%d",&n);
for(m_num=6;m_num<=n;m_num=m_num+2)
for(i=3;i<=m_num/2;i=i+2)
if(IsPrime(i)&&IsPrime(m_num-i))
{
printf("%d=%d+%d ",m_num,i,m_num-i);
k++;
if(k%5==0)
printf("\n");
}
system("pause");
return 0;
}

遇到的问题

并不算是证明哥德巴赫猜想,只是说一个大于6的偶数可以被两个素数表示的意思吧!