codeforces链接:https://codeforces.com/problemset/problem/735/D

CF735D Taxes

题目描述

Mr. Funt now lives in a country with a very specific tax laws. The total income of mr. Funt during this year is equal to $ n $ ( $ n>=2 $ ) burles and the amount of tax he has to pay is calculated as the maximum divisor of $ n $ (not equal to $ n $ , of course). For example, if $ n=6 $ then Funt has to pay $ 3 $ burles, while for $ n=25 $ he needs to pay $ 5 $ and if $ n=2 $ he pays only $ 1 $ burle.

As mr. Funt is a very opportunistic person he wants to cheat a bit. In particular, he wants to split the initial $ n $ in several parts $ n_{1}+n_{2}+...+n_{k}=n $ (here $ k $ is arbitrary, even $ k=1 $ is allowed) and pay the taxes for each part separately. He can't make some part equal to $ 1 $ because it will reveal him. So, the condition $ n_{i}>=2 $ should hold for all $ i $ from $ 1 $ to $ k $ .

Ostap Bender wonders, how many money Funt has to pay (i.e. minimal) if he chooses and optimal way to split $ n $ in parts.

输入格式

The first line of the input contains a single integer $ n $ ( $ 2<=n<=2·10^{9} $ ) — the total year income of mr. Funt.

输出格式

Print one integer — minimum possible number of burles that mr. Funt has to pay as a tax.

输入输出样例 #1

输入 #1

4

输出 #1

2

输入输出样例 #2

输入 #2

27

输出 #2

3

思路:

哥德巴赫猜想应用:

1.任何大于2的偶数可以被拆成两个素数(规定1为质数的情况下)

2.任何大于5的数可以被拆成3个素数之和

因此这道题输出的答案最多为3

当n本身是质数:输出1

当n是偶数或者n-2是质数:输出2

其他情况:输出3

题解:

#include <bits/stdc++.h>
using namespace std;
const int N=1e5+10;
typedef long long ll;
ll n; bool is_prime(int x)
{
if(x<2)return 0;
for(int i=2;i*i<=x;i++)
{
if(x%i==0)return 0;
}
return 1;
} int main()
{
cin>>n;
if(is_prime(n))cout<<1<<endl;
else if(n%2==0)cout<<2<<endl;
else if(n%2==1&&is_prime(n-2))cout<<2<<endl;
else cout<<3<<endl; return 0;
}

CF735D Taxes (数学,质数,筛法,素数判断)的更多相关文章

  1. CF735D Taxes 哥德巴赫猜想\判定素数 \进一步猜想

    http://codeforces.com/problemset/problem/735/D 题意是..一个数n的贡献是它的最大的因子,这个因子不能等于它本身 然后呢..现在我们可以将n拆成任意个数的 ...

  2. 一文解决如何使用 C 语言判断质数(素数)[ 附解析与源码 ]

    前言 质数历来都是数学界的宠儿,是数学里神秘的谜团. 质数又和 C 语言有着不解之缘,本篇文章将讲解如何用 C 语言判断质数. 为了方便大家在读完此文章后使用文中程序,我会将判断质数的程序封装成函数, ...

  3. 有关素数判断的一些算法(总结&&对比)

    素性测试是数论题中比较常用的一个技巧.它可以很基础,也可以很高级(哲学).这次主要要介绍一下有关素数判断的奇技淫巧 素数的判断主要分为两种:范围筛选型&&单个判断型 我们先从范围筛选型 ...

  4. poj2262---素数(质数)的判断

    收获:一开始以为是100万的所有数字,题目要求是只要偶数,也可以分析出来,如果是给一个奇数,当我们给他大于等于3的奇数(这个数加有可能不是质数,但至少满足是奇数,至于是不是质数还要自己判断),剪出来一 ...

  5. #C++初学记录(素数判断2)

    素数判断2 比较简单的算法,没有技术含量 A prime number is a natural number which has exactly two distinct natural numbe ...

  6. hihocoder 数论二·Eular质数筛法

    数论二·Eular质数筛法 时间限制:10000ms 单点时限:1000ms 内存限制:256MB 描述 小Ho:小Hi,上次我学会了如何检测一个数是否是质数.于是我又有了一个新的问题,我如何去快速得 ...

  7. C 语言输出100至200之间的质数(素数)

    题目描述 运行 C 程序,输出 100 至 200 之间的质数. 输入描述 无 输出描述 输出 100 至 200 之间的质数,每行输出一个质数,每个质数前面需要带有序号. 输出样例 解题思路 在&l ...

  8. 51nod 1181 质数中的质数(质数筛法)

    题目链接:51nod 1181 质数中的质数(质数筛法) #include<cstdio> #include<cmath> #include<cstring> #i ...

  9. POJ 1811 大素数判断

    数据范围很大,用米勒罗宾测试和Pollard_Rho法可以分解大数. 模板在代码中 O.O #include <iostream> #include <cstdio> #inc ...

  10. c# 计算1-100之间的所有质数(素数)的和

    求1-100之间的所有质数(素数)的和: 所以先必须知道什么是质数? 一个数是不是素数   “素数”是指除了能被1和自身整除外,不能被任何其它整数整除的自然数. 然后知道有哪些是质数: 记忆的方法: ...

随机推荐

  1. Longest Univalue Path——LeetCode进阶路

    原题链接https://leetcode.com/problems/longest-univalue-path 题目描述 Given a binary tree, find the length of ...

  2. GDAL 2.X升级3.X需要注意的问题总结

    1 引言 最近终于将使用的GDAL 2.X升级到成了3.X版本,总结一下遇到的各种问题. 2 详论 2.1 数据路径 GDAL 3.X以后深度依赖PROJ库,以前只是可选构建项,现在已经是必须构建项了 ...

  3. 「Log」2023.8.17 小记

    序幕 早上到校先摆,然后开调代码. 大分块对拍调调调. 学长开始讲平衡树. 平衡树平衡树平衡树! 学完了,点午饭吃午饭. 学主席树. 主席树主席树主席树! 学完了点晚饭吃完饭. 用 chatGPT 写 ...

  4. 题解:CF1045I Palindrome Pairs

    题目链接:link. 首先上思路: 如果一个字符串是回文串,只有当其中最多的只有一个字符的出现次数是奇数. 注意我们可以将每个字符串的字符出现次数的奇偶性用一个 \(26\) 位的二进制表示. 接下来 ...

  5. etcd详细介绍

    一.etcd介绍 etcd是一个分布式.可靠的key-value存储的分布式系统,它不仅仅可以用于存储,还提供共享配置和服务发现.这里提供配置共享和服务发现的系统较多,比较常用的有zookeeper. ...

  6. h5 移动端适配方案

    h5 移动端适配方案 设定viewport 打开public\index.html,在html\head结点下加入<meta name="viewport" content= ...

  7. 开源交流丨一站式大数据平台运维管家ChengYing安装原理剖析

    课件获取:关注公众号"数栈研习社",后台私信 "ChengYing" 获得直播课件 视频回放:点击这里 ChengYing开源项目地址:github 丨 git ...

  8. Spring AOP 面向切面编程深度解析

    在 Spring 生态系统中,面向切面编程(AOP) 是实现横切关注点分离的核心机制,通过将日志.事务.权限等通用功能从业务逻辑中解耦,提升代码可维护性与复用性.本文从核心概念.实现原理.通知类型及面 ...

  9. Google Cloud Function函数访问AWS的Redis服务(二)

    上一章介绍了使用VP嗯将Google Cloud和AWS的网络连通,这里介绍如何使用:使用Google Cloud Function 访问AWS的Redis服务. 一:Google Cloud 创建 ...

  10. 1. Java SpringMVC源码分析

    目录 1. 使用 1.1. 新建项目 1.1.1. 第一种方式 1.1.1.1. 新建web项目 1.1.1.2. 导入jar包依赖 1.1.2. 第二种方式 1.1.2.1. 新建maven工程 1 ...