f(n) hdu 2582
calculate the f(n) . (3<=n<=1000000)
f(n)= Gcd(3)+Gcd(4)+…+Gcd(i)+…+Gcd(n).
Gcd(n)=gcd(C[n][1],C[n][2],……,C[n][n-1])
C[n][k] means the number of way to choose k things from n some things.
网络上有这个题的题解,但是都是说打表找规律,没有给出规律的证明。昨天睡前yy了一下,给个证明:
首先规律是:
1.Gcd(n)=1 如果n至少有2个不同的质因子;
2.Gcd(n)=p 如果$n=p^k$
先来证明第2条:
$Gcd(p^k)=p$
首先$C[n][1]=n=p^k$
那么最大公约数只能是$p^r\ \ (r<=k)$
考虑第i个组合数$C[n][i]=\frac{p^k*(p^k-1)*(p^k-2)\cdots*(p^k-i+1)}{i!}$
$p^r | (p^k-i) $等价于$p^r | i $
所以$\frac{p^k*(p^k-1)*(p^k-2)\cdots*(p^k-i+1)}{i!}$ 里面因子p的个数和$\frac{p^k*1*2*3\cdots*(i-1)}{i!}$是一样的。
$\frac{p^k*1*2*3\cdots*(i-1)}{i!}$约分一下就变成$\frac{p^k}{i}$ $(1<=i<=p^k-1)$
当$i=p^{k-1}$的时候, $\frac{p^k}{i}$ 里面p的个数最少,只有1个, 因此$Gcd(p^k)=p$
根据上面的思想可以证明第1条:
设 $n=p_1^{\alpha_1}p_2^{\alpha_2}\cdots p_k^{\alpha_k}$
考虑任意一个质因子$p_j$
第i个组合数$C[n][i]=\frac{n*(n-1)*(n-2)\cdots*(n-i+1)}{i!}$
根据上面的推导 $p_j$在第i个组合数出现的次数为$\frac{n}{i}$ 中$p_j$出现的次数。
当$i=\frac{n}{p_s}\ \ (s\neq j)$的时候,$\frac{n}{i}$ 中$p_j$出现的次数为0.
因此不论考虑哪一个质因子,总有某个组合数不是它的倍数,所以$Gcd(p_1^{\alpha_1}p_2^{\alpha_2}\cdots p_k^{\alpha_k})=1$
f(n) hdu 2582的更多相关文章
- HDU 2582 规律 素因子
定义$Gcd(n)=gcd(\binom{n}{1},\binom{n}{2}...\binom{n}{n-1})$,$f(n)=\sum_{i=3}^{n}{Gcd(i)}$,其中$(3<=n ...
- hdu 2582 f(n) 数学
打表找规律: 当n为质数是,GCD(n)=n; 当n为质数k的q次方时,GCD(n)=k; 其他情况,GCD(n)=1. 代码如下: #include<iostream> #include ...
- 数学--数论--HDU 2582 F(N) 暴力打表找规律
This time I need you to calculate the f(n) . (3<=n<=1000000) f(n)= Gcd(3)+Gcd(4)+-+Gcd(i)+-+Gc ...
- 数位dp H - F(x) HDU - 4734
http://acm.hdu.edu.cn/showproblem.php?pid=4734 一般数位dp表示的是数的性质,这个题目也是一样,但是我们求出来的是一个函数的值,怎么把这个值转化成一类数, ...
- F - JDG HDU - 2112 (最短路)&& E - IGNB HDU - 1242 (dfs)
经过锦囊相助,海东集团终于度过了危机,从此,HDU的发展就一直顺风顺水,到了2050年,集团已经相当规模了,据说进入了钱江肉丝经济开发区500强.这时候,XHD夫妇也退居了二线,并在风景秀美的诸暨市浬 ...
- F题 hdu 1431 素数回文
题目链接:http://acm.hdu.edu.cn/showproblem.php?pid=1431 素数回文 Time Limit: 2000/1000 MS (Java/Others) M ...
- hdu 2582(数论相关定理+素数筛选+整数分解)
f(n) Time Limit: 2000/1000 MS (Java/Others) Memory Limit: 32768/32768 K (Java/Others)Total Submis ...
- ACM-ICPC 2015 沈阳赛区现场赛 F. Frogs && HDU 5514(容斥)
题目链接:http://acm.hdu.edu.cn/showproblem.php?pid=5514 题意:有m个石子围成一圈, 有n只青蛙从跳石子, 都从0号石子开始, 每只能越过xi个石子.问所 ...
- F - kebab HDU - 2883 (最大流构图)
Almost everyone likes kebabs nowadays (Here a kebab means pieces of meat grilled on a long thin stic ...
随机推荐
- Spark学习(二) -- Spark整体框架
标签(空格分隔): Spark 还记得上次的wordCount程序嘛?通过这个小程序,我们来一窥Spark的框架是什么样子的. sc.textFile("/usr/local/Cellar/ ...
- Windows安装Scrapy遇坑解决办
PS: Windows真心不适合开发.且行且珍惜.... 坑: error: Setup script exited with error: Microsoft Visual C++ 9.0 is r ...
- C#的四种Timer介绍
一.Timer的几个类别 1.System.Threading.Timer 2.System.Timers.Timer 3.System.Windows.Forms.Timer 4.System.Wi ...
- css实现div的高度填满剩余空间
css实现div的高度填满剩余空间 .top{ width: 100%; height: 70px;} .bottom{background-color: #cc85d9;width: 100%;po ...
- js做计算器
js文档: function count(){ var a var txt1=document.getElementById("txt1").value;//获取第一个输入框的值 ...
- UIStackView使用 (堆视图)
一基本使用 1创建多个子控件 for (int i = 0; i < 3; i++) { UIButton *imgBtn = [UIButton buttonWithType:UIButton ...
- hibernate 和 myBatis 比较
Hibernate与 MyBatis的比较 第一章 Hibernate与MyBatis Hibernate 是当前最流行的O/R mapping框架,它出身于sf.net,现在已经成为Jbos ...
- 在VIM中进行快速的查找和替换
VIM是被誉为非常高效的文本编辑软件.但是掌握并高效的使用是件有难度的事情.在VIM中进行快速的查找和替换是提高VIM使用效率的重要方法.下面是我在阅读VIM用户手册时整理的一些资料: 行内搜索. f ...
- 第四周作业-yjw
运动策略分析 首先我们可以得到我方击球手质心的位置,球的质心的位置,对方球门中心位置.同时以桌面边缘为坐标轴,建立笛卡尔坐标系.可以明确的一点是,击球手的运动为曲线,球进框的运动为直线,或者折线. 击 ...
- python3 实现简单信用卡管理程序
1.程序执行代码: #Author by Andy #_*_ coding:utf-8 _*_ import os,sys,time Base_dir=os.path.dirname(os.path. ...