前往小程序,Get更优阅读体验!
立即前往
首页
学习
活动
专区
工具
TVP
发布
社区首页 >专栏 >P1304 哥德巴赫猜想

P1304 哥德巴赫猜想

作者头像
attack
发布2018-04-12 15:29:33
8520
发布2018-04-12 15:29:33
举报

题目描述

输入N(N<=10000),验证4~N所有偶数是否符合哥德巴赫猜想。

(N为偶数)。

如果一个数,例如10,则输出第一个加数相比其他解法最小的方案。如10=3+7=5+5,则10=5+5是错误答案。

输入输出格式

输入格式:

第一行N

输出格式:

4=2+2 6=3+3 …… N=x+y

输入输出样例

输入样例#1:

10

输出样例#1:

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

先筛一边素数,
然后暴力枚举就好
 1 #include<iostream>
 2 #include<cstdio>
 3 #include<cstring>
 4 #include<cmath>
 5 #include<queue>
 6 using namespace std;
 7 const int MAXN=10001;
 8 const int maxn=0x7fffff;
 9 void read(int &n)
10 {
11     char c='+';int x=0;bool flag=0;
12     while(c<'0'||c>'9')
13     {c=getchar();if(c=='-')flag=1;}
14     while(c>='0'&&c<='9')
15     {x=x*10+(c-48);c=getchar();}
16     flag==1?n=-x:n=x;
17 }
18 int n;
19 int vis[MAXN];
20 int main()
21 {
22     read(n);
23     vis[1]=1;
24     for(int i=2;i<=n;i++)
25         if(!vis[i])
26         for(int j=i*i;j<=n;j+=i)
27             vis[j]=1;
28     for(int i=4;i<=n;i+=2)
29         for(int j=2;j<=n;j++)
30             if(vis[j]==0&&vis[i-j]==0)
31             {
32                 printf("%d=%d+%d\n",i,j,i-j);break;
33             }
34                 
35     return 0;
36 }
本文参与 腾讯云自媒体分享计划,分享自作者个人站点/博客。
原始发表:2017-07-01 ,如有侵权请联系 cloudcommunity@tencent.com 删除

本文分享自 作者个人站点/博客 前往查看

如有侵权,请联系 cloudcommunity@tencent.com 删除。

本文参与 腾讯云自媒体分享计划  ,欢迎热爱写作的你一起参与!

评论
登录后参与评论
0 条评论
热度
最新
推荐阅读
目录
  • 题目描述
  • 输入输出格式
  • 输入输出样例
领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档