数论整理之欧拉函数

简介: 数论整理之欧拉函数

在数论,对正整数n,欧拉函数是小于n的正整数中与n互质的数的数目(φ(1)=1)

91.png


通式:

92.png

ps:那个不认识的符号是累乘 …… 卑微

其中p1, p2……pn为x的所有质因数,x是不为0的整数。

φ(1)=1(和1互质的数(小于等于1)就是1本身)。

注意:每种质因数只一个。 比如12=223那么φ(12)=φ(4 * 3)=φ(2 ^ 2 * 3 ^ 1)=(2 ^ 2-2 ^ 1)*(3 ^ 1-3 ^ 0)=4

若n是质数p的k次幂, ,因为除了p的倍数外,其他数都跟n互质。

设n为正整数,以 φ(n)表示不超过n且与n互素的正整数的个数,称为n的欧拉函数值

φ:N→N,n→φ(n)称为欧拉函数。

欧拉函数是积性函数——若m,n互质,93.png

特殊性质:当n为奇质数时, , 证明与上述类似。

若n为质数则

94.png

95.png

//标程
//欧拉函数
#include<iostream>
#include<cstdio>
using namespace std;
#define ll long long int
#define MAX 2000000+5
int euler[MAX];
void Euler(){
    for(int i=2;i<MAX;i++)
        euler[i] = i;
    for(int i=2;i<MAX;i++){
        if(euler[i]==i)
            for(int j=i;j<MAX;j+=i)
            euler[j] = euler[j]/i*(i-1);
    }
}
int main(){
    Euler();
    int n;
    euler[1] = 1;//这里要初始化euler[1] = 1;
    for(int i = 0;i < 20;i++)
    {
        cout<<euler[i]<<endl;
    }
  return 0;
}

例题:

96.png

97.png

#include<iostream>
#include<cstdio>
using namespace std;
#define ll long long int
const int MAX = 1000010;
int euler[MAX];
void Euler(){
    for(int i=2;i<MAX;i++)
        euler[i] = i;
    for(int i=2;i<MAX;i++){
        if(euler[i]==i)
            for(int j=i;j<MAX;j+=i)
            euler[j] = euler[j]/i*(i-1);
    }
}
int main(){
    Euler();
    int T,n,a,cnt=1;
    ll ans;
    scanf("%d",&T);
    while(T--){
            ans = 0;
        scanf("%d",&n);
        while(n--){
            scanf("%d",&a);
            for(int i=a+1;;i++)
                if(euler[i]>=a){
                    ans+=i;
                    break;
                }
        }
        printf("Case %d: %lld Xukha\n",cnt,ans);
        cnt++;
    }
  return 0;
}
相关文章
|
弹性计算 运维 网络协议
揭秘云网络大会“网红”:阿里云自研高性能网关XGW
XGW是洛神云网络平台的硬件转发层核心,提供了高性能的网络转发能力,负责公网,专线和跨Region流量的汇聚和分发,满足用户大带宽、大单流、稳定性、低延时/低抖动等需求。
7932 0
揭秘云网络大会“网红”:阿里云自研高性能网关XGW
|
安全 网络安全 数据安全/隐私保护
社会工程学攻击:了解并预防心理操控的网络欺诈
社会工程学攻击:了解并预防心理操控的网络欺诈
830 7
|
缓存 负载均衡 监控
Nginx的反向代理功能如何实现的呢
【8月更文挑战第22天】Nginx的反向代理功能如何实现的呢
243 0
【洛谷 P1046】[NOIP2005 普及组] 陶陶摘苹果 题解(比较)
`NOIP2005普及组`编程题《陶陶摘苹果》:陶陶有10个高度在100-200cm的苹果要摘,手触及最大高度+30cm板凳后能摘到的苹果数。输入10个苹果高度和她的最大触及高度,输出可摘苹果数。样例输入:10个苹果高度和110cm触及高度,输出5,表示能摘5个。代码通过逐个比较苹果高度实现统计。
319 0
|
Linux 调度 KVM
KVM详解(一)——KVM基础知识
KVM详解(一)——KVM基础知识
1084 0
|
存储 安全 Linux
内存取证 volatility(上)
0xThrL狗蛋师傅整理的内存取证笔记 有问题可以联系狗蛋师傅VX:GD0xThrL
594 0
|
Java
【JVM调优系列】----NewRatio与SurvivorRatio
-XX:NewRatio 新生代(Eden + 2*S)与老年代(不包括永久区)的比值 4 表示新生代 :老年代 = 1:4 ,意思是老年代占 4/5 -XX:SurvivorRatio 2个Survivor区...
5579 0
|
SQL 关系型数据库 MySQL
分布式数据库之事务隔离性
写在前面近两年分布式数据库技术加速发展,而由于金融行业技术生态的限制,周围很多同学对其并没有深入的了解,所以进行高性能、高可靠系统设计时往往缺少这一利器。Ivan希望以系列文章的方式与大家交流探讨,加深我们对分布式数据库的认识。
2570 0
|
编解码 边缘计算 算法
一文详述流媒体传输网络MediaUni
LiveVideoStackCon2023上海站,阿里云视频云专场系列演讲-1
1223 0
|
JavaScript 前端开发 PHP
PHP - Laravel 视图模板(blade.php)导入JS、Css、素材文件并使用
PHP - Laravel 视图模板(blade.php)导入JS、Css、素材文件并使用
890 0