D. Taxes 哥德巴赫猜想
http://codeforces.com/contest/735/problem/D
这题其实我还不是很懂,那个只是猜想,然而却用了。
只想说说找到第一小于n的素数这种思路是不行的。
121 = 113 + 7 + 1,不能拆成1,但是答案是一样,。
1354 = 1327 + 23 + 4 (27),这里错误了。
这里还要判断如果n - 2是质数的话,就可以是2就够了,
例如1000000011 = 1000000009(质数) + 2
#include <cstdio>
#include <cstdlib>
#include <cstring>
#include <cmath>
#include <algorithm>
#define IOS ios::sync_with_stdio(false)
using namespace std;
#define inf (0x3f3f3f3f)
typedef long long int LL; #include <iostream>
#include <sstream>
#include <vector>
#include <set>
#include <map>
#include <queue>
#include <string>
int haha[];
bool check(int val) {
if (val == || val == || val == || val == ) return true;
if ((val + ) % != && (val - ) % != ) return false;
int end = (int)sqrt(val);
for (int i = ; i <= end; ++i) {
if (val % i == ) return false;
}
return true;
}
int n;
int mx = -inf;
void work() {
IOS;
haha[] = ;
haha[] = ;
haha[] = ;
haha[] = ;
haha[] = ;
haha[] = ;
haha[] = ;
haha[] = ;
cin >> n;
// cout << n << endl;
if (n <= ) {
cout << haha[n] << endl;
return;
}
if (check(n)) {
cout << "" << endl;
return;
}
if (check(n - ) || check(n - ) || check(n - ) || check(n - )) {
cout << "" << endl;
return;
}
if (n & ) {
cout << "" << endl;
} else cout << "" << endl;
} int main() {
#ifdef local
freopen("data.txt","r",stdin);
#endif
work();
return ;
}
哥德巴赫猜想是世界近代三大数学难题之一。哥德巴赫是德国一位中学教师,也是一位著名的数学家,生于1690年,1725年当选为俄国彼得堡科学院院士。1742年,哥德巴赫在教学中发现,每个不小于6的偶数都是两个素数(只能被1和它本身整除的数)之和。如6=3+3,12=5+7等等。
公元1742年6月7日哥德巴赫(Goldbach)写信给当时的大数学家欧拉(Euler),提出了以下的猜想:
(a) 任何一个>=6之偶数,都可以表示成两个奇质数之和。
(b) 任何一个>=9之奇数,都可以表示成三个奇质数之和。
这就是着名的哥德巴赫猜想。欧拉在6月30日给他的回信中说,他相信这个猜想是正确的,但他不能证明。叙述如此简单的问题,连欧拉这样首屈一指的数学家都不能证明,这个猜想便引起了许多数学家的注意。从费马提出这个猜想至今,许多数学家都不断努力想攻克它,但都没有成功。当然曾经有人作了些具体的验证工作,例如: 6 = 3 + 3, 8 = 3 + 5, 10 = 5 + 5 = 3 + 7, 12 = 5 + 7, 14 = 7 + 7 = 3 + 11,16 = 5 + 11, 18 = 5 + 13, . . . . 等等。有人对33×108以内且大过6之偶数一一进行验算,哥德巴赫猜想(a)都成立。但验格的数学证明尚待数学家的努力。
从此,这道著名的数学难题引起了世界上成千上万数学家的注意。200年过去了,没有人证明它。哥德巴赫猜想由此成为数学皇冠上一颗可望不可及的“明珠”。到了20世纪20年代,才有人开始向它靠近。1920年、挪威数学家布爵用一种古老的筛选法证明,得出了一个结论:每一个比大的偶数都可以表示为(9 + 9)。这种缩小包围圈的办法很管用,科学家们于是从(9+9)开始,逐步减少每个数里所含质数因子的个数,直到最后使每个数里都是一个质数为止,这样就证明了“哥德巴赫”。
目前最佳的结果是中国数学家陈景润於1966年证明的,称为陈氏定理(Chen's Theorem)——“任何充分大的偶数都是一个质数与一个自然数之和,而后者仅仅是两个质数的乘积。” 通常都简称这个结果为大偶数可表示为 “1 + 2 ”的形式。
在陈景润之前,关於偶数可表示为 s 个质数的乘积与 t 个质数的乘积之和(简称“s + t ”问题)之进展情况如下:
1920年,挪威的布朗(Brun)证明了 "9 + 9 "。
1924年,德国的拉特马赫(Rademacher)证明了"7 + 7 "。
1932年,英国的埃斯特曼(Estermann)证明了 "6 + 6 "。
1937年,意大利的蕾西(Ricci)先后证明了"5 + 7 ", "4 + 9 ", "3 + 15 "和"2 + 366 "
1938年,苏联的布赫夕太勃(亦译布赫斯塔勃)证明了"5 + 5 "。
1940年,苏联的布赫夕太勃证明了 "4 + 4 "。
1948年,匈牙利的瑞尼(Renyi)证明了"1 + c ",其中 c 是一很大的自然数。
1956年,中国的王元证明了 "3 + 4 "。
1957年,中国的王元先后证明了 "3 + 3 "和 "2 + 3 "。
1962年,中国的潘承洞和苏联的巴尔巴恩(BapoaH)证明了 "1 + 5 ", 中国的王元证明了"1 + 4 "。
1965年,苏联的布赫夕太勃和小维诺格拉多夫(BHHopappB),及意大利的朋比利(Bombieri)证明了"1 + 3 "。
1966年,中国的陈景润证明了 "1 + 2 "。
最终会由谁攻克 "1 + 1 "这个难题呢?现在还没法预测。
D. Taxes 哥德巴赫猜想的更多相关文章
- Codeforces Round #382 (Div. 2) D. Taxes 哥德巴赫猜想
D. Taxes 题目链接 http://codeforces.com/contest/735/problem/D 题面 Mr. Funt now lives in a country with a ...
- CF735D Taxes 哥德巴赫猜想\判定素数 \进一步猜想
http://codeforces.com/problemset/problem/735/D 题意是..一个数n的贡献是它的最大的因子,这个因子不能等于它本身 然后呢..现在我们可以将n拆成任意个数的 ...
- Codefroces 735D Taxes(哥德巴赫猜想)
题目链接:http://codeforces.com/problemset/problem/735/D 题目大意:给一个n,n可以被分解成n1+n2+n3+....nk(1=<k<=n). ...
- Codeforces735D Taxes(哥德巴赫猜想)
题意:已知n元需缴税为n的最大因子x元.现通过将n元分成k份的方式来减少缴税.问通过这种处理方式需缴纳的税费. 分析: 1.若n为素数,不需分解,可得1 2.若n为偶数,由哥德巴赫猜想:一个大于2的偶 ...
- code forces 382 D Taxes(数论--哥德巴赫猜想)
Taxes time limit per test 2 seconds memory limit per test 256 megabytes input standard input output ...
- CodeForces - 735D Taxes (哥德巴赫猜想)
Taxes time limit per test 2 seconds memory limit per test 256 megabytes input standard input output ...
- Codeforces 735D:Taxes(哥德巴赫猜想)
http://codeforces.com/problemset/problem/735/D 题意:给出一个n,这个n可以分解成 n = n1 + n2 + -- + nk,其中k可以取任意数.要使得 ...
- *CF2.D(哥德巴赫猜想)
D. Taxes time limit per test 2 seconds memory limit per test 256 megabytes input standard input outp ...
- C#实现哥德巴赫猜想
using System; using System.Collections.Generic; using System.Linq; using System.Text; namespace Goet ...
随机推荐
- HDU 6108 小C的倍数问题 【数学】 (2017"百度之星"程序设计大赛 - 初赛(A))
小C的倍数问题 Time Limit: 2000/1000 MS (Java/Others) Memory Limit: 32768/32768 K (Java/Others)Total Sub ...
- java反射机制与动态加载类
什么是java反射机制? 1.当程序运行时,允许改变程序结构或变量类型,这种语言称为动态语言.我们认为java并不是动态语言,但是它却有一个非常突出的动态相关机制,俗称:反射. IT行业里这么说,没有 ...
- CentOS7.2安装Vim8和YouCompleteMe
1.环境 本文使用VMWare虚拟机进行实验,客户机系统是CentOS 7.2最小安装(CentOS-7-x86_64-Minimal-1511.iso) 最终实现效果:安装vim8 + python ...
- codeforces 399B. Red and Blue Balls 解题报告
题目链接:http://codeforces.com/problemset/problem/399/B 题目意思:给出 n 个只由 R 和 B 组成的字符串(由上到下排列,相当于栈),问最多可以操作多 ...
- java 正则表达式 -Regular Expression
正则表达式(Regular Expression),可以说就是一个字符构成的串,它定义了一个用来搜索匹配字符串的模式.正则表达式定义了字符串的模式,可以用来搜索.编辑或处理文本,不仅限于某一种语言(P ...
- 汇编环境的搭建(windows 10 + debug)
1. debug.exe 安装 win10 版本过高,不再提供 debug.exe,甚至从别处获取的 debug.exe 的也无法运行. 汇编语言学习所需的各种执行文件(debug.exe.link. ...
- 架构:template
ylbtech-架构: 1.返回顶部 2.返回顶部 3.返回顶部 4.返回顶部 5.返回顶部 6.返回顶部 作者:ylbtech出处:http://ylbtech.cnbl ...
- vue 基本知识整理
1 每个Vue.js应用都是通过构造函数Vue创建一个Vue的根实例 2 可以扩展Vue构造器,从而使用预定义选项创建可复用的组件构造器 所有的Vue.js组件其实都是被扩展的Vue实例 每一个VUE ...
- 036--MySQL扩展
一.视图 视图是一个虚拟表(非真实存在),其本质是[根据SQL语句获取动态的数据集,并为其命名],用户使用时只需使用[名称]即可获取结果集,并可以将其当作表来使用. SELECT * FROM ( S ...
- Python网络爬虫之BeautifulSoup模块
一.介绍: Beautiful Soup 是一个可以从HTML或XML文件中提取数据的Python库.它能够通过你喜欢的转换器实现惯用的文档导航,查找,修改文档的方式.Beautiful Soup会帮 ...