http://poj.org/problem?id=2407
题意:求少于或等于n的数中与n互质的数的数目。(n不大于10亿)
Sample Input
7
12
0
Sample Output
6
4
欧拉函数
在数论,对正整数n,欧拉函数是少于或等于n的数中与n互质的数的数目。此函数以其首名研究者欧拉命名,它又称为Euler's totient function、φ函数、欧拉商数等。 例如φ(8)=4,因为1,3,5,7均和8互质。 从欧拉函数引伸出来在环论方面的事实和拉格朗日定理构成了欧拉定理的证明。
φ函数的值 Euler函数
通式:φ(x)=x(1-1/p1)(1-1/p2)(1-1/p3)(1-1/p4)…..(1-1/pn)
其中p1, p2……pn为x的所有质因数,x是不为0的整数
φ(1)=1(唯一和1互质的数就是1本身)【注意:每种质因数只一个。比如12=2*2*3】
定理:
若n是素数p的k次幂,φ(n)=p^k-p^(k-1)=(p-1)p^(k-1),因为除了p的倍数外,其他数都跟n互质
欧拉函数是积性函数——若m,n互质,φ(mn)=φ(m)φ(n)
证明:
若n= ∏ p^α
则φ(n)=∏(p-1)p^(α-1)=n∏(1-1/p)
∵欧拉函数是积性函数
所以有:φ(x)=x(1-1/p1)(1-1/p2)(1-1/p3)(1-1/p4)…..(1-1/pn)
特殊性质:当n为奇数时,φ(2n)=φ(n), 证明于上述类似
特殊地,p是素数,φ(p) = p - 1,φ(p)称为p的欧拉值
简单套公式:
#include <iostream>
#include <fstream>
#include <algorithm>
#include <string>
#include <set>
//#include <map>
#include <queue>
#include <utility>
#include <iomanip>
#include <stack>
#include <list>
#include <vector>
#include <cstdio>
#include <cstdlib>
#include <cstring>
#include <cmath>
//#include <ctime>
#include <ctype.h>
using namespace std;
int Euler (int n)
{
int i, res = n; //公式的x
for (i = 2; i * i <= n; i++)
{
if (n % i == 0)
{
n /= i;
res = res - res / i; //公式
while (n % i == 0)
n /= i;
}
}
if (n > 1)
res = res - res/n; //公式
return res;
}
int main()
{
int n;
while (scanf ("%d", &n), n)
printf ("%d\n", Euler(n));
return 0;
}
分享到:
相关推荐
欧拉函数 C语言实现 #include "iostream" #include "math.h" #define maxsize 100 using namespace std; typedef struct node { int num; int total; }struct_num; struct_num a[maxsize]; int is_prime(int n)
总的来说,"线性素筛 欧拉函数 区间筛素数.zip_sowoc_算法 欧拉函数 线性筛"这个压缩包文件包含了一种高效的算法实现,该算法能够在线性时间内筛选素数,并且能快速计算欧拉函数值,适用于需要处理大量素数和欧拉...
欧拉函数是数论中很重要的一个函数,欧拉函数是指:对于一个正整数 n ,小于 n 且和 n 互质的正整数(包括 1)的个数,记作 φ(n) 。 完全余数集合: 定义小于 n 且和 n 互质的数构成的集合为 Zn ,称呼这个集合为...
视频讲解欧拉定理和欧拉函数的证明。详细解释了证明简化剩余系的关系为什么要先证明完全剩余系的关系。以及欧拉函数的计算。
这里我们将详细探讨标题和描述中提到的几个关键概念:欧拉函数、Cayley定理、Mobius定理以及整数拆分。 1. **欧拉函数**(Euler's totient function): 欧拉函数φ(n)定义为小于n且与n互质的正整数的数量。它是...
欧拉函数(Euler's totient function),通常表示为φ(n),是数论中一个非常重要的函数。它定义为在1到n之间(包含1和n)与n互质的正整数个数。例如,φ(1)=1,因为只有1与1互质;φ(2)=1,因为只有1与2互质;φ(3)=...
"欧拉函数和简化剩余系" 欧拉函数是数论中重要的函数之一,它描述了正整数中与互素的整数的个数。设n是一个正整数,欧拉函数φ(n)是指在1到n之间与n互素的整数的个数。 简化剩余系是指模m下的简化剩余类的集合。...
标题提到的"代码实现,欧拉函数代码实现,matlab",表明我们将讨论如何在MATLAB环境中实现欧拉函数。欧拉函数,通常用φ(n)表示,是计算小于或等于n且与n互质的正整数的数量,它在数论中具有重要的地位。MATLAB是一种...
欧拉函数,通常用大写字母 φ 表示,是数论中一个非常重要的概念,由瑞士数学家欧拉在18世纪引入。这个函数在数论领域内有着广泛的应用,尤其是在模运算、同余类以及素数分布等方面。欧拉函数定义为:对于正整数n,...
在计算机科学和数学中,特别是在密码学和数论领域,扩展欧几里得算法、模幂运算以及欧拉函数是至关重要的工具。这些概念在解决复杂数学问题时起着核心作用,尤其是在处理整数的性质和计算上。下面我们将深入探讨这三...
"欧拉函数 1" 欧拉函数是一种_IMPORTANT_函数在数论中,它表示 1 到 n-1 之间,与 n 互质的数的个数。在本篇文章中,我们将详细介绍欧拉函数的定义、计算方法和应用场景。 定义 欧拉函数 phi(n) 是指 1 到 n-1 ...
"hdu 1695 GCD(欧拉函数+容斥原理)" 题目大意是:给定 a, b, c, d, k,找到一队 x, y,满足 g(x, y) = k,且 x ∈ [1, b], y ∈ [1, d],问有多少对符合要求的 (x, y)。 思路是:gcd(x, y) == k 解释 x, y 都能...
欧拉函数,通常表示为φ(n),是数论中的一个重要概念,由数学家欧拉引入。这个函数计算了小于或等于n的正整数中与n互质(最大公约数为1)的数的数量。在密码学、计算复杂性和其他数学分支中,欧拉函数有广泛的应用。...
然而,在这个上下文中,"欧拉"更可能指的是欧拉迭代法,而不是欧拉函数。 **euler.slx文件** 根据提供的文件名 "euler.slx",这可能是一个Simulink模型文件,Simulink是MATLAB的一个扩展,用于建立和模拟动态系统...
欧拉函数,通常用φ表示,是数论中的一个基本函数,它对于正整数n,给出了小于或等于n且与n互质的正整数的数量。"欧拉函数前缀"则是指n从1到某个上限值m的欧拉函数值的累加和。 欧拉函数φ(n)的性质包括: 1. **...
利用容斥原理对欧拉函数进行了推广,得出如下结论:1 )给出了欧拉函数的3 种初步推广,即函数φr;k (m),Ωr;k;l (m),Hr;k;l (m),找到并证明了r= 0 的 3 个表达式;2 )进一步推广了欧拉函数,得到并...
欧拉函数的定义是:对于任意正整数n,欧拉函数φ(n)表示的是小于或等于n的正整数中与n互质的数的数目。所谓“互质”,指的是两个数的最大公约数为1。例如,φ(10)=4,因为1、3、7、9这四个数都和10互质。 在PHP中...
《简化剩余系与欧拉函数》的学习教案涵盖了数学领域中重要的数论概念,特别是与整数模运算相关的理论。欧拉函数(Euler's totient function),记为φ(k),是一个计算与给定正整数k互素的整数数量的函数。例如,φ(2...
**欧拉函数的基本概念** 欧拉函数,记作(),是数论中的一个重要函数,它表示小于或等于的正整数中与互素的数的个数。换句话说,()计算的是集合{0, 1, ..., - 1}中与的最大公约数为1的元素数量。这个函数在数论的...
在这个领域中,欧拉函数(Euler's totient function),通常用φ表示,是一个非常重要的概念。欧拉函数φ(n)定义为小于n且与n互质的正整数的数量。换句话说,它是n的正因数中与n没有最大公约数大于1的因数的数量。 ...