您的位置:首页 > 其它

【数论】【素数】素数相关基础——欧拉函数与欧拉定理

2014-07-15 20:12 393 查看
欧拉定理与欧拉函数在数论方面的应用十分广泛,几乎所有的形如a^n % k = 1的东西都可以往上靠。

这里暂时不细说怎么用,先讲基础内容。

1、 欧拉函数  

欧拉函数 φ(n)表示不超过n且与n互素的正整数的个数 。
计算公式为: φ(n)=n*(1-1/p1)*(1-1/p2)*…其中p1,p2…为n的质因数

2、欧拉定理

若a,n是正整数,且a,n互质,则有a^ φ(n) mod n =1。

实际上这是费马小定理的一个推广。

我们看费马小定理:a^(p-1) % p =1,而对于欧拉函数φ(n),当n为素数时,根据其实际意义,显然φ(n)=n-1,带入欧拉定理的式子,其实就得到了飞马小定理。

3、欧拉函数打表

在实际运用中,用朴素方法去一次次求欧拉函数的值是很慢的,所以我们可以采用打表的方法来提高效率。

欧拉函数的打表利用了类似于筛选法打表的思路:枚举i,如果i是一个质数,那么把i的整倍数都乘上(1-1/i),注意实际操作中我们应该是/i*(i-1)。

for (int i=1;i<=100000;i++){
euler[i]=i;
}
for (int i=1;i<=100000;i++){
if (prime[i]==0){
for (int j=i;j<=100000;j+=i){
euler[j]=euler[j]/i*(i-1);
}
}
}


prime数组就是我们之前用筛选法打出来的素数表。
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签:  素数 数论
相关文章推荐