看破欧拉函数的奥秘
时间:2022-05-07
本文章向大家介绍看破欧拉函数的奥秘,主要内容包括其使用实例、应用技巧、基本知识点总结和需要注意事项,具有一定的参考价值,需要的朋友可以参考一下。
注意以下三个特殊性质
编程实现 利用欧拉函数和它本身不同质因数的关系,用筛法计算出某个范围内所有数的欧拉函数值。
1 //直接求解欧拉函数
2 #include<cstdio>
3 int euler(int n){ //返回euler(n)
4 int res=n,a=n;
5 for(int i=2;i*i<=a;i++){//从小到大尝试n的质因数
6 if(a%i==0){//如果i是n的质因数
7 res=res/i*(i-1);//提了一个1/i出来,先进行除法是为了防止中间数据的溢出
8 while(a%i==0) a/=i;//欧拉函数只记算一种质因数
9 }
10 }
11 if(a>1) res=res/a*(a-1);//如果最后还剩因子
12 return res;
13 }
14 int main(){
15 int x;
16 scanf("%d",&x);
17 printf("%d",euler(x));
18 return 0;
19 }
1 //筛选法打欧拉函数表
2 #include<cstdio>
3 #define Max 1000001
4 int euler[Max];
5 void Init(){
6 euler[1]=1;
7 for(int i=2;i<Max;i++)
8 euler[i]=i;
9 for(int i=2;i<Max;i++)
10 if(euler[i]==i)//如果i是质数
11 for(int j=i;j<Max;j+=i)
12 euler[j]=euler[j]/i*(i-1);//提一个1/i,先进行除法是为了防止中间数据的溢出
13 return ;
14 }
15 int main()
16 {
17 Init();
18 for(int i=1;i<=100;i++)
19 printf("%dn",euler[i]);
20 return 0;
21 }
- Android LayoutInflater原理分析,带你一步步深入了解View(一)
- 深入理解Linux磁盘的奥秘
- Linux文件系统——全方位掌握
- TensorFlow和深度学习入门教程
- php+mysql实现分页代码
- 主成分分析降维(MNIST数据集)
- Android 使用dagger2进行依赖注入(基础篇)
- Html小知识总结
- 如何训练一个性能不错的深度神经网络
- 使用AndroidStudio编译NDK的方法及错误解决方案
- 计算机视觉 | Python OpenCV 3 使用背景减除进行目标检测
- linux(centos)搭建SVN服务器
- 简单的Hibernate入门简介
- 思梦PHP-阿里大鱼手机验证码
- JavaScript 教程
- JavaScript 编辑工具
- JavaScript 与HTML
- JavaScript 与Java
- JavaScript 数据结构
- JavaScript 基本数据类型
- JavaScript 特殊数据类型
- JavaScript 运算符
- JavaScript typeof 运算符
- JavaScript 表达式
- JavaScript 类型转换
- JavaScript 基本语法
- JavaScript 注释
- Javascript 基本处理流程
- Javascript 选择结构
- Javascript if 语句
- Javascript if 语句的嵌套
- Javascript switch 语句
- Javascript 循环结构
- Javascript 循环结构实例
- Javascript 跳转语句
- Javascript 控制语句总结
- Javascript 函数介绍
- Javascript 函数的定义
- Javascript 函数调用
- Javascript 几种特殊的函数
- JavaScript 内置函数简介
- Javascript eval() 函数
- Javascript isFinite() 函数
- Javascript isNaN() 函数
- parseInt() 与 parseFloat()
- escape() 与 unescape()
- Javascript 字符串介绍
- Javascript length属性
- javascript 字符串函数
- Javascript 日期对象简介
- Javascript 日期对象用途
- Date 对象属性和方法
- Javascript 数组是什么
- Javascript 创建数组
- Javascript 数组赋值与取值
- Javascript 数组属性和方法
- 用php来查询graphql
- 利用树莓派的摄像模块实现“扫码枪”
- n ../../node_modules/@storybook/channels/dist/index.d.ts:25:9 - error TS1086: An accessor cannot ...
- 要不来重新认识Spring事务?三歪又学到了
- 读者问:学完SSM,该学什么呢?
- go-zero 微服务框架介绍
- redis-cli 未找到命令的一个解决方式
- 【每日一题】42. Trapping Rain Water
- iframe跨域安全
- Efficiently traversing InnoDB B+Trees with the page directory (9.利用页目录实现对B+树的高效遍历)
- C语言 | 每日基础(37)
- 《求求大厂给个Offer》Map面试题
- C语言 | 每日基础(40)
- kubernete编排技术七:secret
- springcloud+eureka整合seata-tcc模式