NYOJ 291 LK数学题(欧拉函数)
来源:互联网 发布:ubuntu core 教程 编辑:程序博客网 时间:2024/06/05 05:37
LK的数学题
时间限制:1000 ms | 内存限制:65535 KB
难度:3
- 描述
LK最近遇到一个问题,需要你帮她一下。一个整数n,求[1,n)中,和n互素的数的个数。
- 输入
- 多组测试数据,每一行有一个整数n(n<1000000001),0表示输入结束。
- 输出
- 小于n同时和n互素的整数的个数
- 样例输入
7120
- 样例输出
6 4
初次接触到欧拉函数,当然先百度啦!!
在数论,对正整数n,欧拉函数是少于或等于n的数中与n互质的数的数目。此函数以其首名研究者欧拉命名,它又称为Euler's totient function、φ函数、欧拉商数等。 例如φ(8)=4,因为1,3,5,7均和8互质。 从欧拉函数引伸出来在环论方面的事实和拉格朗日定理构成了欧拉定理的证明。φ函数的值 通式:φ(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)就是1本身)。 (注意:每种质因数只一个。比如12=2*2*3那么φ(12)=12*(1-1/2)*(1-1/3)=4若n是质数p的k次幂,φ(n)=p^k-p^(k-1)=(p-1)p^(k-1),因为除了p的倍数外,其他数都跟n互质。设n为正整数,以 φ(n)表示不超过n且与n互素的正整数的个数,称为n的欧拉函数值,这里函数φ:N→N,n→φ(n)称为欧拉函数。欧拉函数是积性函数——若m,n互质,φ(mn)=φ(m)φ(n)。特殊性质:当n为奇数时,φ(2n)=φ(n), 证明与上述类似。c语言实现int
eular(
int
n)
{
int
ret=1,i;
for
(i=2;i*i<=n;i++)
if
(n%i==0)
{
n/=i,ret*=i-1;
while
(n%i==0)
n/=i,ret*=i;
}
if
(n>1)
ret*=n-1;
return
ret;
}
AC的代码:#include<iostream>using namespace std;int eular(int n){ int ret=1,i; for(i=2; i*i<=n; i++) if(n%i==0) { n/=i; ret*=i-1; while(n%i==0) { n/=i; ret*=i; }
} if(n>1) ret*=n-1; return ret;
}int main(){ int n; while(1) { cin>>n; if(n==0) return 0; cout<<eular(n)<<endl; } return 0;}
0 0
- NYOJ 291 LK数学题(欧拉函数)
- NYOJ 题目291 LK的数学题(欧拉函数)
- 291 LK的数学题【欧拉函数】
- NYOJ 291 LK的数学题 和 NYOJ 333 mdd的烦恼【欧拉函数】
- LK的数学题 欧拉函数
- nyoj 291-LK的数学题
- NYOJ 291 LK的数学题
- nyoj-291-LK的数学题
- nyoj 1007 GCD(数学题 欧拉函数的应用)
- NYOJ 479 欧拉函数
- NYOJ - 欧拉函数求和
- 【欧拉函数】【数论】17.6.2 数学题 题解
- NYOJ 题目333mdd的烦恼(欧拉函数)
- NYOJ 题目569最大公约数之和(欧拉函数,数学)
- NYOJ 998&& HDOJ2588 GCD (欧拉函数)
- NYOJ 题目998 Sum(欧拉函数,水)
- NYOJ 题目570欧拉函数求和(欧拉函数)
- NYOJ 570欧拉函数求和(欧拉函数&&数论入门)
- snprintf() 替代 sprintf()
- c# ConfigurationManager
- android---------ndk中的各个版本的下载地址。
- 使用顺序表完成学生信息的存储
- 在主机上用GDB远程调试板卡程序
- NYOJ 291 LK数学题(欧拉函数)
- 【操作系统】外部碎片和內部碎片
- Cloud Computing & BI
- Android JNI使用方法
- oracle 单实例 ASM 基本框架
- 京东的互联网金融中的网银在线
- 每一事都是从最伟大的第一步开始
- 逆向分析技术总结(转)
- ZOJ-2645