首页 > 其他分享 >欧拉函数

欧拉函数

时间:2024-04-03 18:22:06浏览次数:20  
标签:... phi 函数 ans cal 欧拉

一、性质求欧拉函数

from collections import Counter
# 证明:容斥原理
# f(N) = N * (1 - 1/p1) * (1 - 1/p2) * ... * (1 - 1/pn)
# 与N互质的数的个数: N - N/P1 - N/P2 - ... - N/Pn + N/(p1p2) + ... + ... - ...
def cal_euler(x):
    ans = x
    cnt = Counter()
    i = 2
    while i * i <= x:
        while x % i == 0:
            x //= i
            cnt[i] += 1
        i += 1
    if x > 1:
        cnt[x] += 1
    for key in cnt.keys():
        ans = ans * (key - 1) // key
    return ans
for _ in range(int(input())):
    a = int(input())
    print(cal_euler(a))

二、筛法求欧拉函数

# 筛法求euler函数,跟线性筛差不多
n = int(input())
prime = []
vis = [0] * (n + 1)
phi = [0] * (n + 1)
phi[1] = 1

def cal_eulers():
    for i in range(2,n + 1):
        if not vis[i]:
            prime.append(i)
            # 质数i的欧拉函数为 i - 1
            phi[i] = i - 1
        for x in prime:
            if x * i > n:
                break
            vis[x * i] = 1
            if i % x == 0:
                phi[i * x] = x * phi[i]
                break
            phi[i * x] = (x - 1) * phi[i]
cal_eulers()
ans = sum(phi)
print(ans)

标签:...,phi,函数,ans,cal,欧拉
From: https://www.cnblogs.com/gebeng/p/18113314

相关文章

  • Python语法学习三之函数
    一、简单函数定义和调用def函数名():代码#无参数,无返回值的函数defprintName():print"cehae"printName()#无参数,有返回值的函数defgetAge():return18printgetAge()#有参数,无返回值的函数defprintSex(sex):printsexpr......
  • setrlimit函数限制进程资源
    setrlimit设置参数满足structrlimit{rlim_trlim_cur;//软限制rlim_trlim_max;//硬限制}可以设置的参数:RLIMIT_AS:进程总的可用的存储空间的大小。此外,自动堆栈扩展也将失败(并生成一个SIGSEGV,当没有备用堆栈可用时,它会终止进程)RLIMIT_CORE:核心文件的最大......
  • mysql --聚合函数的学习
    聚合函数1.常见的聚合函数1.1AVG/SUM:只适用于数值类型的字段(或变量)1.2MAX/MIN:适用于数值类型、字符串类型、时间日期类型的字段(或变量)1.3COUNT1.3.1作用:计算指定字段在查询结构中出现的个数(不包含NULL值的)#如果计算表中有......
  • free函数的用法和注意事项
    1.定义函数free是C语言中的一个库函数,用于释放动态分配的内存。free函数的用法如下:voidfree(void*ptr);2.注意事项:1.只能释放由malloc、calloc、realloc函数分配的内存空间,不能释放其他类型的内存。2.不能释放已经被释放过的内存。3.释放内存后,不要再使用该内存空......
  • GO——变量定义规范,,类型,,常量,,函数,,包
    #1变量定义规范#25关键字forif。。。。#37个保留字intint8panic。。。#2变量定义1完整定义var变量名变量类型=变量值var变量名变量类型2类型推导(变量类型在定义阶段固定了,后期不能改变)var变量名=值......
  • C#中Directory.GetFiles() 函数的使用方法(读取目录中的文件)
    原文链接:https://blog.csdn.net/qq_35970739/article/details/82887314C#中Directory.GetFiles(string path ,stringsearchPattern,SearchOptionsearchOption )获取path目录中所有文件一、参数1、path要搜索的目录的相对或绝对路径。此字符串不区分大小写。2、sear......
  • 函数
    pycharm相关设置“代码自动完成”时间延时设置File->Settings->Editor->General->CodeCompletion->Autopopupin(ms):0快捷键:Ctrl+P 参数信息(在方法中调用参数)Ctrl+Q 快速查看文档Ctrl+Alt+M 提取方法定义用于封装一个特定的功能,表示一个功能或......
  • MySQL数据库:第十六章:sql高级函数,和腾讯大牛的技术面谈
    CURDATE()或CURRENT_DATE()返回当前的日期CURTIME()或CURRENT_TIME()返回当前的时间DATE_ADD(date,INTERVALintkeyword)返回日期date加上间隔时间int的结果(int必须按照关键字进行格式化),如:SELECTDATE_ADD(CURRENT_DATE,INTERVAL6MONTH);DATE_FORMAT(date,fmt......
  • mathematical-expression(MAE)数学表达式 数学函数 解析编译库,有效的快速和简单易用的数
    数学表达式SwitchtoEnglishDocument介绍本框架是一种针对数学公式解析的有效工具,能够解析包含嵌套函数,包含函数,数列步长累加等数学公式,返回值是一个数值的结果对象,同时也可以进行比较运算的操作,再进行比较的时候,返回值是一个布尔值结果对象。PS请尽量使用1.3.1版......
  • pandas中describe() 函数的应用
    describe()函数用于生成关于DataFrame中数值型列的统计摘要。它提供了各种描述性统计信息,如均值、标准差、最小值、最大值、四分位数等,以帮助我们更好地了解数据的分布情况。下面是一个示例,说明如何使用describe()函数:importpandasaspd#创建一个DataFramedata=......