51nod1419 【数学】
思路:
n<=3,就是n.
考虑n>3:
我们可以轻松证明n,n-1这两个数互质:
设gcd(n,n-1)=g,n=g*k1,n-1=g*k2;
n-(n-1)=g(k1-k2)=1;
所以 g=1.
当n,n-2互质就更好了,n*(n-1)*(n-2)最大呀。
设gcd(n,n-2)=g,n=g*k1,n-2=g*k2;
n-(n-2)=g(k1-k2)=2; 得g<=2;
很好发现,g要么是1,要么是2,
so,很容易得出答案,n是奇数的时候 answer=n*(n-1)*(n-2);
考虑n%2==0,gcd(n,n-2)=2;
这时候考虑答案有几个呢???
我们知道n和n-2是偶数,n-1是奇数,n-3是奇数
first answer:n*(n-1)*(n-2)/2
那我说我有一个answer应该是比这个大:n*(n-1)*(n-3)
证:(n-3)>=(n-2)/2 n>=4 满足
但是不一定成立吧?
n-3和n-1一定互质?什么时候n和n-3互质呢?
同上我们很容易知道,gcd(n,n-3)<=3,1有,2不可能(n-3是奇数啊),所以只有3了
n%3!=0的时候,那就互质了。
那么如果不互质了呢?
second answer:n*(n-1)*(n-3)/3
还有一个答案:(n-1)*(n-2)*(n-3) 这个数一定比 n*(n-1)*(n-3)/3 这个大的情况很好说明 且 明显小于n*(n-1)*(n-3)也很好说明:
即证明(n-2)>=n/3 => 2*n>=6 => n>=3,而这边考虑的都是n>3,所以一定满足;
而且这三个数都是两两互质。
so code:
#include <bits/stdc++.h>
using namespace std;
typedef long long LL;
int main()
{
LL n;
scanf("%lld",&n);
if(n<=3)
printf("%lld\n",n);
else if(n%2==1)
{
printf("%lld\n",n*(n-1)*(n-2));
}
else if(n%3!=0)
{
printf("%lld\n",n*(n-1)*(n-3));
}
else
{
printf("%lld\n",(n-1)*(n-2)*(n-3));
}
return 0;
}
51nod1419 【数学】的更多相关文章
- 数学思想:为何我们把 x²读作x平方
要弄清楚这个问题,我们得先认识一个人.古希腊大数学家 欧多克索斯,其在整个古代仅次于阿基米德,是一位天文学家.医生.几何学家.立法家和地理学家. 为何我们把 x²读作x平方呢? 古希腊时代,越来越多的 ...
- 速算1/Sqrt(x)背后的数学原理
概述 平方根倒数速算法,是用于快速计算1/Sqrt(x)的值的一种算法,在这里x需取符合IEEE 754标准格式的32位正浮点数.让我们先来看这段代码: float Q_rsqrt( float nu ...
- MarkDown+LaTex 数学内容编辑样例收集
$\color{green}{MarkDown+LaTex 数学内容编辑样例收集}$ 1.大小标题的居中,大小,颜色 [例1] $\color{Blue}{一元二次方程根的分布}$ $\color{R ...
- 深度学习笔记——PCA原理与数学推倒详解
PCA目的:这里举个例子,如果假设我有m个点,{x(1),...,x(m)},那么我要将它们存在我的内存中,或者要对着m个点进行一次机器学习,但是这m个点的维度太大了,如果要进行机器学习的话参数太多, ...
- Sql Server函数全解<二>数学函数
阅读目录 1.绝对值函数ABS(x)和返回圆周率的函数PI() 2.平方根函数SQRT(x) 3.获取随机函数的函数RAND()和RAND(x) 4.四舍五入函数ROUND(x,y) 5.符号函数SI ...
- *HDU 2451 数学
Simple Addition Expression Time Limit: 5000/1000 MS (Java/Others) Memory Limit: 32768/32768 K (Ja ...
- 如何解决Maple的应用在数学中
对任意数学和技术学科的研究员.教师和学生而言,Maple是一个必备的工具.通过Maple,教师将复杂数学问题注入生命,学生的精力集中在概念理解上而不是如何使用工具上,研究员可以开发更复杂的算法或模型. ...
- 如何让Maple中的数学引擎进入你的桌面应用程序和网站
MapleNET数学服务套件将Maple 2015强大的数学引擎引入您的应用程序和网站.使用MapleNET,您可以添加数学计算和可视化功能到网页和桌面程序中,通过互联网/局域网分享“活”的Maple ...
- 【原创】开源Math.NET基础数学类库使用(07)常用的数学物理常数
本博客所有文章分类的总目录:[总目录]本博客博文总目录-实时更新 开源Math.NET基础数学类库使用总目录:[目录]开源Math.NET基础数学类库使用总目录 1.前 ...
随机推荐
- 英语发音规则---Y字母
英语发音规则---Y字母 一.总结 一句话总结: 1.Y字母在单词最前面读发[j]? yes /jes/ [jɛs] n. 是 yard /jɑːd/ [jɑd] n. 院子 yellow /'jel ...
- 未测试 Delphi读写UTF-8、Unicode格式文本文件
// UTF-8文件写入函数 procedure SaveUTFFile(const FileName: string; S: string; WriteHeader: Boolean = True) ...
- C++(四)— 字符串、数字翻转3种方法
1.使用algorithm中的reverse函数,string类型字符建议使用. #include <iostream> #include <string> #include ...
- 欧拉函数(汇总&例题)
定义 欧拉函数 $\varphi(n)$表示小于等于$n$的正整数中与$n$互质的数的数目. 性质 1.积性函数(证明). 2.$\varphi(1)=1$(显然) 3.对于质数$n$,$\varph ...
- Gym - 100851J: Jump(交互+构造+(大胆瞎搞)))
题意:给定长度为N的01串,现在让你猜这个串,猜的次数要不超过N+500次. 每次你猜一个串,系统会返回N/2,或N,或0.当且当有N/2个位置猜对,N个位置猜对,其他. 思路:因为信息不多,没有关联 ...
- 使用IronPython集成Python和.NET
本文由 伯乐在线 - 艾凌风 翻译,Daetalus 校稿.未经许可,禁止转载!英文出处:www.informit.com.欢迎加入翻译组. 从两个优秀的世界各取所需,更高效的复用代码.想想就醉了,. ...
- SparkWriteToHFile
1. HFile的LoadIncrement卡住 原来是因为权限,我一直以为,load函数之后是要删除文件的,但是hdfs://slave1:8020/test/info文件夹所有的是只读权限,而且考 ...
- java多线程编程核心技术——第四章总结
第一节使用ReentrantLock类 1.1使用ReentrantLock实现同步:测试1 1.2使用ReentrantLock实现同步:测试2 1.3使用Condition实现等待/同步错误用法与 ...
- MySQL查询计划输出列的含义
"一:MySQL查询计划输出列的含义:1.id:每个被独立执行的操作的标识,表示对象被操作的顺序:id值越大,先被执行:如果相同,执行顺序从上到下.2.select_type:查询中每个se ...
- from selenium.webdriver.support.ui import Select
from selenium.webdriver.support.ui import Select Select(d.find_element_by_id(u'key_开户行')).first_sele ...