首页 > 其他分享 >数论:数论函数

数论:数论函数

时间:2024-03-29 22:33:06浏览次数:18  
标签:函数 数论 varphi cdot 积性 欧拉

数论函数

积性函数

积性函数:对于任何互质的整数有 \(f(a \cdot b) = f(a) \cdot f(b)\) 的数论函数。
完全积性函数:对于任何整数有 \(f(a \cdot b) = f(a) \cdot f(b)\) 的数论函数。

常见积性函数:欧拉函数 \(\varphi\),莫比乌斯函数 \(\mu\),因数个数函数 \(\tau\),因数和函数 \(\sigma\)。

\(\pi\) 函数不是积性函数。

性质 1 若 \(f(x), g(x)\) 均为积性函数,则 \(h(x) = f(x) \cdot g(x)\) 也为积性函数。

线性筛求积性函数

对于 \(p \mid n\),\(f(n) = f(p) \cdot f(n / p)\)。

以欧拉函数为例:\(\varphi(n) = \varphi(p) \cdot \varphi(n / p)\)。
设素数 \(p\),整数 \(x\)。
显然 \(\varphi(p) = p - 1\);
若 \(p \nmid x\),\(\varphi(px) = \varphi(p) \cdot \varphi(x)\);
若 \(p \mid x\),\(\varphi(px) = p \cdot \varphi(x)\)。

phi[1] = 1;
for (int i = 2; i <= n; ++i) {
    if (!vis[i]) {
        primes.push_back(i);
        phi[i] = i - 1;
    }
    for (size_t j = 0; j < primes.size() && i * primes[j] <= n; ++j) {
        vis[i * primes[j]] = true;
        if (i % primes[j] == 0) {
            phi[i * primes[j]] = phi[i] * primes[j];
            break;
        } else {
            phi[i * primes[j]] = phi[i] * phi[primes[j]];
        }
    }
}

欧拉函数

欧拉函数 \(\varphi(n)\) 描述小于 \(n\) 的与 \(n\) 互素的正整数个数。
例如:\(\varphi(4) = 2\)。

欧拉函数是积性函数,线性筛求欧拉函数见上文“线性筛求积性函数”。

\[\varphi(n) = n \cdot \prod\limits_{p \mid n}{(1 - p^{-1})} \]

欧拉定理 若正整数 \(a, p\) 互素,\(a^{\varphi(p)} \equiv 1 \pmod p\)。

参考资料

初等数论笔记Part 1: 欧拉定理 - 知乎

标签:函数,数论,varphi,cdot,积性,欧拉
From: https://www.cnblogs.com/bluewindde/p/18104741

相关文章

  • python中函数与递归的练习
    求一个十进制的数值的二进制的0、1的个数实现一个用户管理系统(要求使用容器保存数据)[{name:xxx,pass:xxx,……},{},{}]users=[]#用户类,包含基本信息classUser:def__init__(self,name,password,email=None):self.name=nameself.p......
  • 使用函数指针实现转移表
    用函数指针实现简单的计算器功能。使用函数指针模拟实现计算器的功能大大减少了代码量,只需要创建一个函数指针数组,zi’azia其中存放着四钟加减乘除的算法。代码如下#include<stdio.h>intadd(inta,intb){ returna+b;}intsub(inta,intb){ returna-b;......
  • postgresql自定义函数实现功能有两个数组arr1,arr2,返回第一个数组中不在第二个数组的
    CREATEORREPLACEFUNCTIONarray_difference(arr1text[],arr2text[])RETURNStext[]AS$$DECLAREresult_arrtext[];BEGIN--初始化结果数组为一个空数组result_arr:='{}';--遍历第一个数组中的每个元素FORiIN1..array_leng......
  • postgresql自定义函数实现三个数组存在相同数据,且在第四个数组中不存在的数据
    --使用postgresql语言写一个函数,实现以下功能:--1有管理权限用户数组、列表权限用户数组、查看权限用户数组、无权限用户数组四个用户数组--2当无权限用户数组存在用户数据时,如果管理权限用户数组,列表权限用户数组,查看权限用户数组中存在相同的用户数据,并且和无权限用户数......
  • PHP关于随机打乱字符串函数str_shuffle会出现重复的问题
        某次在线上排查问题时发现,代码中使用的一个使用str_shuffle随机打乱字符串函数生成的唯一字符出现了重复,导致插入数据库失败。觉得很奇怪,生成随机字符串的方法如下:functionmakeString($len){$char='0123456789abcdefghijklmnopqrstuvwxyzABCDEFGHIJKLMNOPQRS......
  • KingbaseES集群运维案例之-- V8R3与V8R6集群wal函数应用
    案例说明:KingbaseESV8R3和V8R6集群在通过函数获取wal日志的相关信息时,两个版本的函数名称不同,本案例做了函数应用的对比和总结。适用版本:KingbaseESV8R3/R6一、KingbaseESV8R3相关函数Tips:在V8R3的版本,事务日志名称为xlog。1、查询数据库支持的函数test=#selectpron......
  • HTML元素语义化补充之css函数(三)
    文章目录CSS中的函数css函数–varcss函数–calccss函数–blurcss函数–gradientlinear-gradient的使用CSS中的函数◼在前面我们有使用过很多个CSS函数:比如rgb/rgba/translate/rotate/scale等;CSS函数通常可以帮助我们更加灵活的来编写样式的值;◼下面有几个......
  • C++从入门到精通——函数重载
    函数重载前言一、函数重载概念二、函数重载的分类参数类型不同的函数重载参数个数不同的函数重载参数类型顺序不同的函数重载三、函数重载的具体代码展示main.cpp四、为什么为什么C++支持函数重载,而C语言不支持函数重载呢前言函数重载是指在同一个作用域内,可以定......
  • MYSQL聚合函数
    DDLCREATETABLE`studentid`(`id`int(11)NOTNULLAUTO_INCREMENTCOMMENT'学号',`createDate`datetimeDEFAULTNULLCOMMENT'创建时间',`username`varchar(20)DEFAULTNULLCOMMENT'用户名',`pwd`varchar(36)DEFAULTNULLCO......
  • 常用的几种聚合函数
    1、创建数据表——DDLCREATETABLE`student`(`id`int(11)NOTNULLAUTO_INCREMENTCOMMENT'学号',`createDate`datetimeDEFAULTNULLCOMMENT'创建时间',`userName`varchar(20)DEFAULTNULLCOMMENT'用户名',`pwd`varchar(36)DEFAULT......