数论 欧拉函数_数论欧拉函数

数论 欧拉函数_数论欧拉函数欧拉函数:就是对于一个正整数n,小于n且和n互质的正整数(包括1)的个数,记作φ(n)。欧拉函数的通式:φ(n)=n*(1-1/p1)(1-1/p2)(1-1/p3)*(1-1/p4)……(1-1/pn)其中p1,p2……pn为n的所有质因数,n是不为0的整数。φ(1)=1(唯一和1互质的数就是1本身)。所以,根据通式我们可以打出以下代码:lleular(lln){…

大家好,又见面了,我是你们的朋友全栈君。如果您正在找激活码,请点击查看最新教程,关注关注公众号 “全栈程序员社区” 获取激活教程,可能之前旧版本教程已经失效.最新Idea2022.1教程亲测有效,一键激活。

Jetbrains全系列IDE使用 1年只要46元 售后保障 童叟无欺

欧拉函数:

就是对于一个正整数n,小于n且和n互质的正整数(包括1)的个数,记作φ(n) 。

欧拉函数的通式:φ(n)=n*(1-1/p1)(1-1/p2)(1-1/p3)*(1-1/p4)……(1-1/pn)

其中p1, p2……pn为n的所有质因数,n是不为0的整数。φ(1)=1(唯一和1互质的数就是1本身)。
在这里插入图片描述

所以,根据通式我们可以打出以下代码:

ll eular(ll n)
{ 
   
    ll ans = n;
    for(int i=2; i*i <= n; ++i)
    { 
   
        if(n%i == 0)
        { 
   
            ans = ans/i*(i-1);
            while(n%i == 0)
                n/=i;
        }
    }
    if(n > 1) ans = ans/n*(n-1);
    return ans;
}

其中,if(n>1)ans-=ans/n; 这个语句是为了保证我们已经除完了n的所有的素因子,有可能还会出现一个我们未除的因子,如果结尾出现n>1 ,说明我们还剩一个素因子木有除。

打表求欧拉函数:

听说这样比较快。。。。

void euler()  
{ 
     
    for(int i=2;i<maxn;i++){ 
     
        if(!E[i])  
        for(int j=i;j<maxn;j+=i){ 
     
            if(!E[j])E[j]=j;  
            E[j]=E[j]/i*(i-1);  
        }  
    }  
}
当然,还有百度百科版的:( 欧拉筛素数同时求欧拉函数)

在这里插入图片描述

void get_phi()  
{ 
     
    int i, j, k;  
    k = 0;  
    for(i = 2; i < maxn; i++)  
    { 
     
        if(is_prime[i] == false)  
        { 
     
            prime[k++] = i;  
            phi[i] = i-1;  
        }  
        for(j = 0; j<k && i*prime[j]<maxn; j++)  
        { 
     
            is_prime[ i*prime[j] ] = true;  
            if(i%prime[j] == 0)  
            { 
     
                phi[ i*prime[j] ] = phi[i] * prime[j];  
                break;  
            }  
            else  
            { 
     
                phi[ i*prime[j] ] = phi[i] * (prime[j]-1);  
            }  
        }  
    }  
}  

欧拉函数的一些性质:
① 当m,n互质时,有phi(m*n)= phi(m)*phi(n);

② 若i%p==0,有phi(i*p) = p * phi(i);

③ 对于互质x与p,有x^phi§≡1(mod p),因此x的逆元为x^(phi§-1),即欧拉定理。
(特别地,当p为质数时,phi(p)=p-1,此时逆元为x^(p-2),即费马小定理)

④ 当n为奇数时,phi(2n)=phi(n)

⑤ 若x与p互质,则p-x也与p互质,因此小于p且与p互质的数之和为phi(x)*x/2;

⑥N>1,不大于N且和N互素的所有正整数的和是 1/2 *N *eular(N)。

⑦若(N%a == 0 && (N/a)%a==0) 则有:E(N)=E(N/a)*a;

⑧若(N%a==0 && (N/a)%a!=0) 则有:E(N)=E(N/a)*(a-1);

版权声明:本文内容由互联网用户自发贡献,该文观点仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请联系我们举报,一经查实,本站将立刻删除。

发布者:全栈程序员-站长,转载请注明出处:https://javaforall.net/172045.html原文链接:https://javaforall.net

(0)
全栈程序员-站长的头像全栈程序员-站长


相关推荐

  • unity3D场景_3D夜晚场景

    unity3D场景_3D夜晚场景在学习阿发你好的网课过程中,学习完Unity的2D课程后深有感触,决定将3D学习过程一步步记录下来,也方便日后查询。创建3D项目Step1:在UnityHub中新建3D项目Step2:将页面调整为2×3布局(项目中通常使用2×3)新建项目选择window->layouts->2by3选择window->General->Console调出控制台认识3D场景天空盒skybox:上有蓝天,下有深渊,在计算机图形学学习过程中就有所涉及。ALT+鼠标

    2022年8月10日
    15
  • SQL数据库数据类型_数据表的常见数据类型有哪些

    SQL数据库数据类型_数据表的常见数据类型有哪些文章目录1. 整数型● bigint(大整数)● int(整数)● smallint(短整数)● tinyint(微短整数)2. 精确数值型numeric | decimal(p[,s])3. 浮点型● real● float[(n)]4. 货币型●money● smallmoney5. 位型6. 字符型●char[(n)]●varchar[(n)]7. Unicode字符型● nchar[(n)…

    2022年8月18日
    7
  • 前端基础:100道CSS面试题总结

    前端基础:100道CSS面试题总结前言CSS是层叠样式表(CascadingStyleSheets)的简称。CSS主要作用是美化网页、布局页面。CSS规则主要由两个主要部分构成:选择器及一条或多条声明。在前端基础面试中,CSS是不会缺席的,下面就给大家分享下CSS的常见面试题。CSS面试题:介绍一下标准的CSS的盒子模型?低版本IE的盒子模型有什么不同的?CSS选择符有哪些?::before和:after中双冒号和单冒号有什么区别?解释一下这2个伪元素的作用。伪类与伪元素的区别CSS中

    2022年5月27日
    36
  • Matlab画图颜色设置

    Matlab画图颜色设置注意:MATLAB中调色板色彩强度[0,1],0代表最暗,1代表最亮。     常用颜色的RGB值  ——————————————–  颜色  R G B  &…

    2022年5月31日
    390
  • JAVA线程通信详解[通俗易懂]

    JAVA线程通信详解[通俗易懂]目录一、概述二、wait/notify机制三、Condition四、生产者/消费者模式五、线程间的通信——管道六、方法Join的使用一、概述    线程与线程之间不是相互独立的个体,它们彼此之间需要相互通信和协作,最典型的例子就是生产者-消费者问题:当队列满时,生产者需要等待队列有空间才能继续往里面放入商品,而在等待的期间内,生产者必须释放对临界资源(即队列…

    2022年6月19日
    30
  • hg261gu改桥接设置_HG220G_u光猫是千兆的吗

    hg261gu改桥接设置_HG220G_u光猫是千兆的吗背景最近换了光纤,装了光猫,型号是HG220GS-U,软件版本E00L3.01。改光猫自带wifi功能,和路由器一样,经过简单的设置就可以上网了。本来用的挺好,但是家里电子设备不少,后来发现ipad不能上网了。猜测有可能是光猫连接数量有限制。另外,以后打算在家里搭建NAS,免不了要桥接,正好一次性完成。教程在网上找了一圈,发现HG220的教程不少,但是HG220GS-U的基本没有。好多教程还…

    2022年10月8日
    3

发表回复

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

关注全栈程序员社区公众号