歌德巴赫猜想(模板)

【入门】歌德巴赫猜想

时间限制: 1.000 Sec 内存限制: 16 MB
题目描述:
任一个大于等于4的偶数都可以拆分为两个素数之和。
输入
一个整数n( 4 <= n <= 200 )
输出
将小于等于n的偶数拆分为2个质数之和,列出所有方案!
样例
输入

10

输出

4=2+2
6=3+3
8=3+5
10=3+7
10=5+5

提示
10=3+7 与10=7+3算一种方案。
具体方案如下:
先设置一个求素数的函数并设定返回值,当其为素数时返回1,不为素数时返回0,最后在主函数中用判断语句看组成偶数的两个数是否都是素数,如果是则输出。
代码如下:

#include <stdio.h>
#include<math.h>
#include <stdlib.h>
int sh(int n)
{
    //什么是素数?除了1和它本身以外,不被整除的数,最小的素数是2
    //如何判断素数?  1;用2-(n-1)去除,不能整除,说明是素数
    //                2:用2-(n/2)去除,不能整除,说明是素数
    //                3: 用2-n开根号(Math.sqrt(n))去除,不能整除,说明是素数
int i;
for(i=2;i<=n/2;i++)
    {
      if(n%i==0)//若m能被某个i整除,提前结束循环。
        return 0;
    }
if(i>n/2&&n>1)
    return 1;
else
    return 0;
}
int main()
{
 int i,j,k,m;
 scanf("%d",&m);
    for(i=4;i<=m;i=i+2)
    {
        for(j=2;j<=i/2;j++)
        {
            k=i-j;
        if(sh(j)&&sh(k))
        {
        printf("%d=%d+%d\n",i,j,k);
        }
        }
    }
 return 0;
}
  • 1
    点赞
  • 2
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值