euler证明
我们用g(x)表示x的欧拉函数值,即1~x与x互质的数的个数
欧拉函数公式为: g(x)= y*((x1-1)/x1)*((x2-1)/x2)*((x3-1)/x3)....(其中x1, x2, x3....为质数)
证明:
1. 对于质数x,有g(x)=x-1
2. 对于x^h,其中x为质数,那么显然1~x^h之间包含x因子的数不与x^h互质,有:
x, 2*x, 3*x, 4*x.....x^(h-1)*x 共x^(h-1)个,很显然有g(x^h)=x^h-x^(h-1),其中x^(h-1)为
不与x^h互质的数。
例如:
y=3^4
... 3 .2*3.. 3*3 ..4*3. 5*3 3*3*3 .7*3..... 3*3*3*3
g(y)=3^4-3^3
3. 对于任意一个数y,我们可以将其分解成质数的积的形式,再由乘法原理得到g(y)
例如:
y=3^4*5^7
g(y)=(3^4-3^3)*(5^7-5^6)
4. 综上所述:
对于任意y=x1^h1*x2^h2*x3^h3......有:
g(y)=(x1^h1-x1^(h1-1))*(x2^h2-x2^(h2-1))*(x3^h3-x3^(h3-1))....
=x1^h1*(1-1/x1)*x2^h2*(1-1/x2)*x3^h3*(1-1/x3)....
=y*(1-1/x1)*(1-1/x2)*(1-1/x3)....
=y*((x1-1)/x1)*((x2-1)/x2)*((x3-1)/x3)....
至此得到了欧拉函数
代码:
/* int euler(int n){
int ans=1;
for(int i=2; i*i<=n; i++){
if(n%i==0){
ans*=(i-1);
n/=i;
while(n%i==0){
ans*=i;
n/=i;
}
}
}
if(n>1){
ans*=n-1;
}
}*/ int euler(int n){
int ans=n;
for(int i=; i*i<=n; i++){
if(n%i==){
ans=ans*(i-)/i;
while(n%i==){
n/=i;
}
}
}
if(n>){
ans=ans*(n-)/n;
}
}
euler证明的更多相关文章
- 【poj1284-Primitive Roots】欧拉函数-奇素数的原根个数
http://poj.org/problem?id=1284 题意:给定一个奇素数p,求p的原根个数. 原根: { (xi mod p) | 1 <= i <= p-1 } is equa ...
- poj 1284 Primitive Roots (原根)
Primitive Roots http://poj.org/problem?id=1284 Time Limit: 1000MS Memory Limit: 10000K Descr ...
- Primitive Roots(poj1284)
Primitive Roots Time Limit: 1000MS Memory Limit: 10000K Total Submissions: 3928 Accepted: 2342 D ...
- ACM数论之旅7---欧拉函数的证明及代码实现(我会证明都是骗人的╮( ̄▽ ̄)╭)
欧拉函数,用φ(n)表示 欧拉函数是求小于等于n的数中与n互质的数的数目 辣么,怎么求哩?~(-o ̄▽ ̄)-o 可以先在1到n-1中找到与n不互质的数,然后把他们减掉 比如φ(12) 把12质因数分解 ...
- nyoj1007(euler 函数)
euler(x)公式能计算小于等于x的并且和x互质的数的个数: 我们再看一下如何求小于等于n的和n互质的数的和, 我们用sum(n)表示: 若gcd(x, a)=1,则有gcd(x, x-a)=1: ...
- [家里蹲大学数学杂志]第237期Euler公式的美
1 Euler 公式 $e^{i\pi}+1=0$ (1) 它把 a. $e:$ 自然对数的底 $\approx 2. 718281828459$ (数分) b. $i$: 虚数单位 $=\sqr ...
- The Euler function(线性筛欧拉函数)
/* 题意:(n)表示小于n与n互质的数有多少个,给你两个数a,b让你计算a+(a+1)+(a+2)+......+b; 初步思路:暴力搞一下,打表 #放弃:打了十几分钟没打完 #改进:欧拉函数:具体 ...
- 证明与计算(2): 离散对数问题(Discrete logarithm Problem, DLP)
离散对数问题,英文是Discrete logarithm Problem,有时候简写为Discrete log,该问题是十几个开放数学问题(Open Problems in Mathematics, ...
- 『素数 Prime判定和线性欧拉筛法 The sieve of Euler』
素数(Prime)及判定 定义 素数又称质数,一个大于1的自然数,除了1和它自身外,不能整除其他自然数的数叫做质数,否则称为合数. 1既不是素数也不是合数. 判定 如何判定一个数是否是素数呢?显然,我 ...
随机推荐
- iOS进程间通信之CFMessagePort
本文转载至 http://www.cocoachina.com/industry/20140606/8701.html iOS系统是出了名的封闭,每个应用的活动范围被严格地限制在各自的沙盒中.尽管如此 ...
- ZooKeeper学习笔记(一)
引导 刚开始学习ZooKeepter,看的书是[O'Reilly Media] ZooKeeper.下面的内容基本上是该书的翻译,很多语句也存在问题,大致读还是没问题的,自己在学习中记录. 第一章 Z ...
- bootstrap-table 行内编辑
1.文件引入 <link rel="stylesheet" href="bootstrap.css"> <link rel="sty ...
- Hibernate主要查询方式
1.hql查询 1.1 无参数的hql查询 1.2 带参的hql查询(分为问号占位和字符占位两种) Ps: 绑定各种类型的参数时用setParameter()绑定参数,如封装方法后用不定参数时循环绑定 ...
- SpringSecurity加密Salt
Spring Security 加密,默认加salt的输出为:password{salt};然后再对这个加salt后的密码加密存储. 源码如下: protected String mergePassw ...
- [转]FPGA实践——基于ROM访问的直接波形合成
本文原创,转载请注明出处:http://www.cnblogs.com/risten/p/4166169.html 1.系统原理 通过频率控制字选择相位步进,产生访问ROM的地址,进而控制DAC的输出 ...
- html5--3.5 input元素(4)
html5--3.5 input元素(4) 学习要点 input元素及其属性 input元素 用来设置表单中的内容项,比如输入内容的文本框,按钮等 不仅可以布置在表单中,也可以在表单之外的元素使用 i ...
- codevs 3269 混合背包(复习混合背包)
传送门 [题目大意]给出物品的数量.-1为无限个. [思路]混合背包.... [code] #include<iostream> #include<cstdio> #inclu ...
- Ubuntu下使用gcc编译c文件,未识别cos,sin
Ubuntu下使用gcc编译c文件,虽然我调用了math.h的头文件,但是未识别cos,sin 报错:( fft.c ) /tmp/ccwXjD8C.o: In function `fft': fft ...
- bzoj4892
后缀数组 先开始nc了,觉得自动机做法是指数级的,就写了个后缀数组 具体方法是暴力,枚举起点,然后用lcp向后暴力匹配,如果失配就减少一次,我们一共有3次机会,这样每次匹配复杂度是O(1)的,所以总复 ...