每天一道英文题,ICPC不自闭(14)
POJ 2262 Goldbach's Conjecture
题目翻译
1742年,德国业余数学家克里斯蒂安·戈德巴赫(Christian Goldbach)致函莱昂哈德·欧拉(Leonhard Euler),他在信中做出以下推测:
每一个大于4的偶数都可以写为两个奇数素数之和。
举个栗子:
8 = 3 + 5. 3和5都是奇数素数。
20 = 3 + 17 = 7 + 13。
42 = 5 + 37 = 11 + 31 = 13 + 29 = 19 + 23。
今天,这个猜想是否正确还没有得到证实。(哦,等等,我当然有证据,但写在这一页的页边太长了。)无论如何,你现在的任务是验证哥德巴赫对所有小于一百万的偶数的猜想。
输入
输入将包含一个或多个测试用例。每个测试用例由一个偶数整数 n 组成,其中 6<=n<1000000。对于 n,输入将以 0 值终止。
输出
对于每个测试用例,打印一行形式为 n=a+b,其中 a 和 b 是奇数素数。数字和运算符应该用一个空格隔开,就像下面的示例输出一样。如果有多对奇数素数加起来等于 n,则选择差值 b-a 最大的一对。如果没有这样的一对,就写一行“哥德巴赫的猜想是错误的。”(很明显这句话没用)
样例
输入
8 20 42 0
输出
8 = 3 + 5 20 = 3 + 17 42 = 5 + 37
解题思路
其实这道题有很大一个bug,n 是偶数整数,而偶数素数只有 2 不论和其他哪个素数合起来必然为奇数,所以这道题没必要考虑那么多,直接筛出来素数,然后从小到大找就可以了。
代码示例
#include<iostream>
#include<cmath>
#include<cstdio>
#include<cstring>
#include<algorithm>
using namespace std;int a;
int l,r;
int cnt;
int prime[1001000];
bool isprime[1001000];void prepare(int x){memset(isprime,1,sizeof(isprime));for(int i=2;i<=x;i++){if(isprime[i]) prime[++cnt]=i;for(int j=1;j<=cnt&&prime[j]*i<=x;j++){isprime[i*prime[j]]=0;if(i%prime[j]==0) break;}}
}int main(){prepare(1000000);while(cin>>a){if(a==0) break;for(int i=1;i<=cnt;i++){if(isprime[a-prime[i]]){l=prime[i];r=a-prime[i];break;}}cout<<a<<" = "<<l<<" + "<<r<<endl;}
}
每天一道英文题,ICPC不自闭(14)相关推荐
- 每天一道英文题,ICPC不自闭(25)
Codeforces Round #766 (Div. 2) - B 题目翻译 拉胡尔和蒂娜期待着在大学开始新的一年.当他们进入新教室时,他们观察到学生的座位是以 n×m 的网格排列的.r 行和c 列 ...
- 一道oj题-字母圣诞树
一道oj题-字母圣诞树 字母圣诞树 题目描述打印一个字母圣诞树. 输入第一行是一个整数K,表示样例的个数.以后每个样例是一个大写英文字母,占一行. 输出输出对应的字母圣诞树,每行末尾没有空格,每个圣诞 ...
- 第三届山西省赛1004 一道大水题(scanf)
一道大水题 时间限制: C/C++ 2000ms; Java 4000ms 内存限制: 65535KB 通过次数: 44 总提交次数: 1020 问题描述 Dr. Pan作为上兰帝国ACM的总负责人, ...
- 简单tarjan》一道裸题(BZOJ1051)(easy)
这是一道水题,实际考察的是你会不会写强连通分量...(在BZOJ上又水了一道题) Description 每一头牛的愿望就是变成一头最受欢迎的牛.现在有N头牛,给你M对整数(A,B),表示牛A认为牛B ...
- 计算机网络英语第二章,计算机网络英文题库(附答案)chapter2.doc
计算机网络英文题库(附答案)chapter2计算机网络英文题库(附答案)chapter2 Chapter 2 Application Layer 1. In the following four de ...
- 一天一道算法题--5.30---递归
感谢微信平台: 一天一道算法题 --------每天多一点进步--------- 今天 休假 这题 也很水 能发现 规律就好 明天 再也不能这样了 forgive me ---------- 转载于 ...
- CSU 1785: 又一道简单题
1785: 又一道简单题 Submit Page Summary Time Limit: 5 Sec Memory Limit: 128 Mb Submitted: 602 ...
- 一天一道算法题--6.15--卡特兰数
感谢微信平台---一天一道算法题---每天多一点进步- problem: 12个高矮不同的人 排成两排 每排必须是从矮到高排列 而且第二行比对应的第一排的人高 问排列方式有多少种? analyse: ...
- [js] 一道变态题 Number.call.call(Number, undefined, 0) 等于什么?
[js] 一道变态题 Number.call.call(Number, undefined, 0) 等于什么? call 的第一个参数用于改变上下文,由于没有用到 this,第一个参数 Number ...
最新文章
- Linux之软件安装 apt-get
- Vue中动态设置页面title
- javascript操作select下拉列表框的一点小经验
- 入门代码教程第一节 如何:定义服务协定
- 《FPGA全程进阶---实战演练》第一章之如何学习FPGA
- 自拟计算机作文100字,介绍电脑的作文100字
- O’Reilly发布“微服务成熟度状态”报告:微服务是成功的
- MapReduce经典案例——统计单词数
- java整数翻转_Java程序反转数字
- 浅谈 Python 中的 __init__ 和 __new__
- 亿级数据量场景下,如何优化数据库分页查询方法?
- Python将类对象转换为json
- NIOS II 常见问题总结FAQ - xiangyuqxq的专栏 - CSDN博客
- php利用curl实现多进程下载文件类
- 【专业发展】技术领导力
- Unity:通过脚本控制Shader中的Cutoff
- 史上最全maven教程
- 事情永远做不完,却什么都带不走
- python中 r'', b'', u'', f'' 的含义
- linux sendmail漏洞,linux-sendmail的安全-029