各种证明(备忘) n div i有2√n个取值 n div a div b=n div (a*b) n div (n div x)=x (x≤√n) 平方求和公式 调和级数公式 斐波那契数列性质 欧拉函数性质 (prod_{i=0}^{p-1}{(x-i)}=x^p-x;(mod;p) ; p in prime) (prod{frac{1}{x^2}}=frac{pi^2}{6}) (sum_{gcd(i,n)=1}i=frac{1}{2}varphi(n)n) (sum_{i=1}^{k}{iinom{k}{i}}=2^{k-1}k) (sigma_0(nm)=sum_{i|n} sum_{j|m} [(i,j)=1])

不定期更新(×)

定期不更新(√)

https://blog.csdn.net/gmh77/article/details/88142031
显然n div i最多只有2√n个取值,则s和g最多只有2√n个取值
对于≤√n的数可以直接存,处理也很方便,对于>√n的可以用n div x来存

n div a div b=n div (a*b)

来自https://blog.csdn.net/semiwaker/article/details/73822107

各种证明(备忘)
n div i有2√n个取值
n div a div b=n div (a*b)
n div (n div x)=x (x≤√n)
平方求和公式
调和级数公式
斐波那契数列性质
欧拉函数性质
(prod_{i=0}^{p-1}{(x-i)}=x^p-x;(mod;p) ; p in prime)
(prod{frac{1}{x^2}}=frac{pi^2}{6})
(sum_{gcd(i,n)=1}i=frac{1}{2}varphi(n)n)
(sum_{i=1}^{k}{iinom{k}{i}}=2^{k-1}k)
(sigma_0(nm)=sum_{i|n} sum_{j|m} [(i,j)=1])

n div (n div x)=x (x≤√n)

(n=ax+b(0≤b<x))
(left lfloor frac{n}{left lfloor frac{n}{x} ight floor} ight floor=x)
(left lfloor frac{ax+b}{left lfloor frac{ax+b}{x} ight floor} ight floor=x)
(left lfloor frac{ax+b}{a} ight floor=x)
(left lfloor x+frac{b}{a} ight floor=x)
如果(frac{b}{a}<1)那么结论就可以成立
(a>b)
因为(n=ax+b)
所以(a=left lfloor frac{n}{x} ight floor)(b=n;mod;x)
因为(x leqslant sqrt(n)),所以(left lfloor frac{n}{x} ight floor geqslant sqrt(n)),即(ageqslant sqrt(n))
因为(b=n;mod;x),所以(b<x),即(b<sqrt(n))
所以(ageqslant sqrt(n)>b),即当(x leqslant sqrt(n))时原式成立
(用于min25筛)

平方求和公式

不是求平方和
(sum_{i=1}^{n}{i^2})
根据高斯求和公式,(sum_{i=1}^{n}{i^2}=sum_{i=1}^{n}{frac{1}{2}(i+n)(n-i+1)})(i^2^=i*i,i出现了i次)
(=frac{1}{2}sum_{i=1}^{n}{n^2-i^2+i+n})
(=frac{1}{2}(n^2(n+1)+frac{1}{2}(1+n)n-sum_{i=1}^{n}{i^2}))
(=frac{1}{2}(n(n+1)(n+frac{1}{2})-sum_{i=1}^{n}{i^2}))
联立求解
(sum_{i=1}^{n}{i^2}=frac{1}{2}(n(n+1)(n+frac{1}{2})-sum_{i=1}^{n}{i^2}))
(2sum_{i=1}^{n}{i^2}=n(n+1)(n+frac{1}{2})-sum_{i=1}^{n}{i^2})
(3sum_{i=1}^{n}{i^2}=n(n+1)(n+frac{1}{2}))
(sum_{i=1}^{n}{i^2}=frac{n(n+1)(n+frac{1}{2})}{3})
(sum_{i=1}^{n}{i^2}=frac{n(n+1)(2n+1)}{6})

调和级数公式

https://blog.csdn.net/gmh77/article/details/98226712
(sum_{i=1}^{n}{frac{1}{i}}=ln(n)+gamma+X_n)(γ为欧拉常数,当n趋近与无穷大时X~n~约等于0)

(sum_{i=1}^{n}{frac{1}{i}}=int_{1}^{n+1}{frac{1}{left lfloor x ight floor}}dx)
(=int_{1}^{n+1}{frac{1}{x}}dx+int_{1}^{n+1}{(frac{1}{left lfloor x ight floor}-frac{1}{x})}dx)
(=ln(n+1)+int_{1}^{n+1}{(frac{1}{left lfloor x ight floor}-frac{1}{x})}dx)
(=ln(n)+gamma+X_n)(n+1≈∞)
(approx ln(n)+gamma)(n+1≈∞)

欧拉常数计算

#include <iostream>
#include <cstdlib>
#include <cstdio>
#include <cmath>
#define fo(a,b,c) for (a=b; a<=c; a++)
#define fd(a,b,c) for (a=b; a>=c; a--)
#define E 0.0001
using namespace std;

long double euler,i;

int main()
{
	i=1;
	
	while (i<=10000)
	{
		euler+=(1.0/floor(i)-1.0/i);
		i+=E;
	}
	
	printf("%0.10Lf
",euler*E);
}

算得γ=0.5771351607

斐波那契数列性质

https://blog.csdn.net/gmh77/article/details/98583079
(gcd(F(n-1),F(n))=1)
(F(n)=F(m+1)F(n-m)+F(m)F(n-m-1))
(gcd(F(n),F(m))=F(gcd(n,m))
证明:

反证,若(gcd(F(n-1),F(n))=a)(a>1),那么a|F(n-1)、a|F(n)
因为F(n)=F(n-1)+F(n-2),则a|F(n-2)
如此类推,发现a|F(1)
因为a>1且F(1)=1,所以不成立

归纳:已证得(F(n)=F(m)F(n-m+1)+F(m-1)F(n-m)),边界为(F(n)=F(2)F(n-1)+F(1)F(n-2))(m=1)
(F(n)=F(m)F(n-m+1)+F(m-1)F(n-m))
(F(n)=F(m)F(n-m)+F(m)F(n-m-1)+F(m-1)F(n-m))
(F(n)=(F(m)+F(m-1))F(n-m)+F(m)F(n-m-1))
(F(n)=F(m+1)F(n-m)+F(m)F(n-m-1))

(gcd(F(n),F(m))=gcd(F(m+1)F(n-m)+F(m)F(n-m-1),F(m)))
(gcd(F(n),F(m))=gcd((F(m+1)F(n-m)+F(m)F(n-m-1)); mod ;F(m),F(m)))
因为(gcd(a*b,c)=gcd(b,c))(ac互质)且(gcd(F(m),F(m+1))=1)
(gcd(F(n),F(m))=gcd(F(n-m),F(m)))
可以发现上面的式子类似求gcd
因为(gcd(a,b)=gcd(gcd(a,b),0))
类比可得(gcd(F(n),F(m))=gcd(F(gcd(n,m)),F(0))=F(gcd(n,m)))(F(0)=0)
(这个式子对多个数也是成立的)
参考&其它性质:https://www.cnblogs.com/Milkor/p/4734763.html

欧拉函数性质

https://blog.csdn.net/gmh77/article/details/99066792
(n=sum_{d|n}{varphi(d)})
(F(n)=sum_{d|n}{varphi(d)}),则
(F(n)*F(m)=sum_{i|n}{varphi(i)}*sum_{j|m}{varphi(j)})(nm互质)
(=sum_{i|n}{sum_{j|m}{varphi(i*j)}})
(=F(n*m))
所以证得F(n)是积性函数
(F(p^k))(p为质数)
(F(p^k)=sum_{i=0}^{k}{varphi(p^i)})
(=(sum_{i=1}^{k}{p^i*(1-frac{1}{p})})+1)
(=(sum_{i=1}^{k}{p^{i-1}*(p-1)})+1)
(=(sum_{i=1}^{k}{p^i-p^{i-1}})+1)
(=p^k-p^0+1)
(=p^k)
由于F(n)是积性函数,且F(p^k^)=p^k^,所以可以推得F(n)=n(对于任意n)
所以
(F(n)=sum_{d|n}{varphi(d)})
(n=sum_{d|n}{varphi(d)})
参考&其它性质:https://blog.csdn.net/liuzibujian/article/details/81086324

(prod_{i=0}^{p-1}{(x-i)}=x^p-x;(mod;p) ; p in prime)

时隔六个月我又更了

大概是因为点值相同所以等价

具体证明:https://www.cnblogs.com/Dup4/p/10750749.html

(prod{frac{1}{x^2}}=frac{pi^2}{6})

有这条式子但是不会证

(sum_{gcd(i,n)=1}i=frac{1}{2}varphi(n)n)

当n>2时若gcd(n,i)=1,则gcd(n,n-i)=1

那么gcd=1的会成对存在,有phi(n)/2对,每对相加为n

n=2时刚好满足,n=1要特判

(sum_{i=1}^{k}{iinom{k}{i}}=2^{k-1}k)

(iinom{k}{i}=i*frac{k!}{i!(k-i)!}=k*frac{(k-1)!}{(i-1)!(k-i)!}=inom{k-1}{i-1})

(sigma_0(nm)=sum_{i|n} sum_{j|m} [(i,j)=1])

σ0是约数个数

每个因子p(n中a1,m中a2)是独立的,因此等价于算了(a1+1)+(a2+1)-1=a1+a2+1次,刚好是(sigma_0)的计算方法