Codeforces 735D:Taxes(哥德巴赫猜想)
http://codeforces.com/problemset/problem/735/D
题意:给出一个n,这个n可以分解成 n = n1 + n2 + …… + nk,其中k可以取任意数。要使得分解以后所有的n的最大因子(不包括自己本身)的和最小,问最小的和是多少。
思路:比赛的时候想到全部拆成素数是最好的,但是不知道怎么拆,看别人跑的特别快,就知道是数论题,绝望之下试了两发暴力,都是TLE了,GG。早上起来才知道有“哥德巴赫猜想”这个东西。
内容大概是如下两点:
1、所有大于2的偶数可以被分解成两个素数。
2、所有大于7的奇数可以被分解成三个素数。(n-3)为偶数,3是一个素数,所以是三个。
所以知道这个猜想之后就变得简单了:
1、偶数:n为2,答案是1,否则答案是2.
2、奇数:首先,n最少可以拆成三个素数,还有两种情况要考虑:n本身是一个素数的话答案就是1,n-2是一个素数答案就是2(一个奇数可以拆成一个偶数+一个奇数,偶数只有2是素数)。
#include <cstdio>
#include <cstring>
#include <algorithm>
#include <cmath>
#include <iostream>
using namespace std;
const int N = ; bool check(int n) {
int tmp = sqrt(n * 1.0);
for(int i = ; i <= tmp; i++) {
if(n % i == ) return false;
}
return true;
} int main() {
int n;
scanf("%d", &n);
int ans;
if(n & ) {
if(check(n)) ans = ;
else if(check(n-)) ans = ;
else ans = ;
} else {
if(n == ) ans = ;
else ans = ;
}
printf("%d\n", ans);
return ;
}
Codeforces 735D:Taxes(哥德巴赫猜想)的更多相关文章
- Codefroces 735D Taxes(哥德巴赫猜想)
题目链接:http://codeforces.com/problemset/problem/735/D 题目大意:给一个n,n可以被分解成n1+n2+n3+....nk(1=<k<=n). ...
- CodeForces - 735D Taxes (哥德巴赫猜想)
Taxes time limit per test 2 seconds memory limit per test 256 megabytes input standard input output ...
- 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拆成任意个数的 ...
- codeforces 735D Taxes(数论)
Maximal GCD 题目链接:http://codeforces.com/problemset/problem/735/D ——每天在线,欢迎留言谈论. 题目大意: 给你一个n(2≤n≤2e9) ...
- D. Taxes 哥德巴赫猜想
http://codeforces.com/contest/735/problem/D 这题其实我还不是很懂,那个只是猜想,然而却用了. 只想说说找到第一小于n的素数这种思路是不行的. 121 = 1 ...
- Codeforces 735D Taxes(简单数论)
题目链接 http://codeforces.com/problemset/problem/735/D 题意:一个人的收入为n他要交的税是n的最大除数,他为了少缴税将n分成k个数n1,n2,n2... ...
- CodeForces 735D Taxes
哥德巴赫猜想. 如果$n$是素数,答案为$1$. 如果$n$不是素数,但$n$是偶数,由哥德巴赫猜想可知答案为$2$. 如果$n$不是素数,且$n$为奇数,此时可以将$n$拆成$3+$偶数或者$2+$ ...
- Codeforces735D Taxes(哥德巴赫猜想)
题意:已知n元需缴税为n的最大因子x元.现通过将n元分成k份的方式来减少缴税.问通过这种处理方式需缴纳的税费. 分析: 1.若n为素数,不需分解,可得1 2.若n为偶数,由哥德巴赫猜想:一个大于2的偶 ...
随机推荐
- python_类
1. 对象的概念 对象包括特性和方法.特性只是作为对象的一部分的变量,方法则是存储在对象内的函数.对象中的方法和其他函数的区别在于方法总是将对象作为自己的第一个参数,这个参数一般称为self. 2. ...
- [g2o]一个备忘
g2o使用的一个备忘 位姿已知,闭环的帧已知,进行图优化. #include "stdafx.h" #include <vector> #include "P ...
- MQ基础
1. 什么时候用activeMQ 在大量场合,ActiveMQ和异步消息对系统架构有意味深长的影响.下面举一些例子: 1). 异构系统集成 2). 取代RPC 3). 应用间的解耦 4). 事件驱动架 ...
- Redis分布式
昨天公司技术大牛做了一个Redis分布式的技术分享: Redis分布式资源: http://redis.io/topics/cluster-tutorialhttp://redis.io/topics ...
- How about xlogs are missing and xlogs are deleted
[postgres@minion1 bin]$ pwd /usr/local/pgtest/bin [postgres@minion1 bin]$ ./pg_ctl -D ../data/ start ...
- C++之路起航——标准模板库(list)
list(链表):http://baike.baidu.com/link?url=gkVdBlHEzy6ssrgT5Iy2wze4jl37ka1G45TRpUHrQSYFZQg2HimtUCePV0t ...
- Spring 中 Xml配置文件属性的说明
Xml配置文件属性的说明: <bean id="TheAction" ⑴ class="net.xiaxin.spring.qs.UpperAction" ...
- 关于centos更新后virtualbox无法使用的问题
http://blog.csdn.net/zgglj/article/details/50325675
- python—类对象和实例对象的区别
最近在对RF的通讯层的模块进行封装,需要将之前放在类似main里面的一个方法,如下所示:这段代码是开发提供,用于接口测试,模拟底层通讯,具体的通讯是在dll内,python这边只是做了个封装让RF进行 ...
- 【fedora】制作安装u盘
找一台安装好linux系统的PC,将下载的LiveCD ISO文件复制到硬盘(这样速度快),查看U盘挂载的位置(用磁盘工具),在终端中使用dd命令: $ sudo dd if=<Live ISO ...