数学·Euler函数·证明及其求法

数学·Euler函数·证明及其求法欧拉函数是求解 n 以内和 n 互质的数的个数的函数

大家好,欢迎来到IT知识分享网。

欧拉函数是求解n以内和n互质的数的个数的函数。

性质1· Euler(mn) = Euler(m) * Euler(n);

性质2· Euler(m^n) = m^n – m^(n-1) = m^n * (1 – 1/m);

性质3· n = p1^k1 * p2^k2 * p3^ k3 ……..;

综上可知:

Euler(n)= Euler(p1^k1 * p2^k2 * p3…..);

p1,p2,p3,..为n的质因数;

某犇博客:想点就点

求法:

(1) 直接线性:

int Euler(int n) { int res = n; int a = n; for (int p = 2; p < n; p ++) { if (n % p == 0) { res = res/p *(p-1); while(n%p == 0) { n /= p; } } } if (a > 1) { res = res/a * (a-1); } return res; }

(2) 筛法:

int eul[maxn]; int Euler() { for (int i = 2; i < maxn; i++) { eul[i] =i; } for (int i = 2; i < maxn; i++) { if (eul[i] == i) { for (int j = i; j < maxn; j += i) { eul[i] = euler[j]/i * (i-1); } } } }

免责声明:本站所有文章内容,图片,视频等均是来源于用户投稿和互联网及文摘转载整编而成,不代表本站观点,不承担相关法律责任。其著作权各归其原作者或其出版社所有。如发现本站有涉嫌抄袭侵权/违法违规的内容,侵犯到您的权益,请在线联系站长,一经查实,本站将立刻删除。 本文来自网络,若有侵权,请联系删除,如若转载,请注明出处:https://haidsoft.com/154817.html

(0)
上一篇 2025-02-23 16:33
下一篇 2025-02-23 17:00

相关推荐

发表回复

您的邮箱地址不会被公开。 必填项已用 * 标注

关注微信