欧拉函数
欧拉函数是数论中的一个重要函数。
同时,它也是密码系统不可缺少的极其重要的函数。
/* * 欧拉函数:数论中,对于正整数n,欧拉函数是小于n的数中与n互质的数的数目。 * 此函数以其首名研究者欧拉命名(Ruler'so totient function), * 又称为Euler's totient function、φ函数、欧拉商数等。 * */ #include <stdio.h> int eular(int n) { int ret=1, i; for(i=2; i*i<=n; i++) { if(n%i == 0) { n /= i; ret *= i-1; while(n%i == 0) { n /= i; ret *= i; } } } if(n>1) ret *= n-1; return ret; } int main(void) { int i; for(i=2; i<=100; i++) printf("i=%d eular=%d\n", i, eular(i)); return 0; }
关键代码:
/* 欧拉函数 */ int eular(int n) { int ret=1, i; for(i=2; i*i<=n; i++) { if(n%i == 0) { n /= i; ret *= i-1; while(n%i == 0) { n /= i; ret *= i; } } } if(n>1) ret *= n-1; return ret; }
【推荐】国内首个AI IDE,深度理解中文开发场景,立即下载体验Trae
【推荐】编程新体验,更懂你的AI,立即体验豆包MarsCode编程助手
【推荐】抖音旗下AI助手豆包,你的智能百科全书,全免费不限次数
【推荐】轻量又高性能的 SSH 工具 IShell:AI 加持,快人一步