XDU 1098 (欧拉函数模板题)
原题链接,点击此处
欧拉函数:φ(N)表示对一个正整数N,欧拉函数是小于N且与N互质的数的个数
通式:φ(x) = x(1-1/p1)(1-1/p2)(1-1/p3)(1-1/p4)…..(1-1/pn)
其中p1, p2……pn为x的所有质因数,x是不为0的整数。
注意:将n分解为最简质因数,每种质因数只用一次。
比如 12 = 2*2*3,那么 φ(12) = 12 * (1-1/2) * (1-1/3) = 4(1,5,7,11)
若 n = p^k ( p为 质数 ),则 φ(n) = p^k-p^(k-1) = (p-1)p^(k-1)
特例,若n = p(k=1, p 为质数),则 φ(n) = p-p^(1-1) = p-1。
因为质数p除了1以外的因数只有p,故1至p的整数只有p与p不互质
一些欧拉函数的性质:
① N是不为0的整数。φ(1)=1(唯一和1互质的数就是1本身)
② 除了N=2,φ(N)都是偶数.
③ 小于N且与N互质的所有数的和是φ(n)*n/2。
④ 欧拉函数是积性函数——若m,n互质,φ(m*n)=φ(m)*φ(n)。
⑤ 当N为奇数时,φ(2*N)=φ(N)
⑥若N=p^k,φ(N)=p^k-p^(k-1)=(p-1)p^(k-1),因为除了p的倍数外,其他数都跟N互质。
⑦ 当N是质数时,φ(N) = N-1
相关性质证明参考:http://blog.csdn.net/yxuanwkeith/article/details/52387873
PPT讲解:http://max.book118.com/html/2016/1025/60637698.shtm
由于一个数n的质因数一定小于等于sqrt(n),所以时间复杂度O(sqrt(n))
#include<cstdio>
/*素数筛
phi[maxn]打表
int p[maxn];
void phi()
{
for(int i=1;i<maxn;i++) p[i]=i;
for(int i=2;i<maxn;i++){
if(p[i]==i){
for(int j=i;j<maxn;j+=i)
p[j]-=p[j]/i;
}
}
}
*/
int phi(int x)
{
int ans=x;
for(int i=;i*i<=x;i++){
if(x%i==)
ans-=ans/i;
while(x%i==) x/=i;
}//每种质因数只用一次
if(x>)
ans-=ans/x;
return ans;
}
int main()
{
int n;
while(scanf("%d",&n)!=EOF)
printf("%d\n",phi(n));
}
XDU 1098 (欧拉函数模板题)的更多相关文章
- UVA 10820 欧拉函数模板题
这道题就是一道简单的欧拉函数模板题,需要注意的是,当(1,1)时只有一个,其他的都有一对.应该对欧拉函数做预处理,显然不会超时. #include<iostream> #include&l ...
- (hdu step 7.2.1)The Euler function(欧拉函数模板题——求phi[a]到phi[b]的和)
题目: The Euler function Time Limit: 2000/1000 MS (Java/Others) Memory Limit: 32768/32768 K (Java/Othe ...
- poj2407(欧拉函数模板题)
题目链接:https://vjudge.net/problem/POJ-2407 题意:给出n,求0..n-1中与n互质的数的个数. 思路:欧拉函数板子题,先根据唯一分解定理求出n的所有质因数p1,p ...
- 数论 - 欧拉函数模板题 --- poj 2407 : Relatives
Relatives Time Limit: 1000MS Memory Limit: 65536K Total Submissions: 11372 Accepted: 5544 Descri ...
- 找新朋友 HDU - 1286 欧拉函数模板题
题意: 求出来区间[1,n]内与n互质的数的数量 题解: 典型的欧拉函数应用,具体见这里:Relatives POJ - 2407 欧拉函数 代码: 1 #include<stdio.h> ...
- POJ 2407:Relatives(欧拉函数模板)
Relatives AC代码 Relatives Time Limit: 1000MS Memory Limit: 65536K Total Submissions: 16186 Accept ...
- POJ 2407 Relatives(欧拉函数入门题)
Relatives Given n, a positive integer, how many positive integers less than n are relatively prime t ...
- hdu 1286 找新朋友 欧拉函数模版题
找新朋友 Time Limit: 2000/1000 MS (Java/Others) Memory Limit: 65536/32768 K (Java/Others) Problem Des ...
- hdu3501Calculation 2——欧拉函数模板
题目: Problem Description Given a positive integer N, your task is to calculate the sum of the positiv ...
随机推荐
- SVN入门2
TortoiseSVN 以简单易用的安装包的形式发布.双击安装文件并按照提示操作.安装文件会照顾其余的事情.安装结束后不要忘记重启电脑. Import(导入) 导入.导出是以服务器上的版本库为中心的. ...
- Group By和Order By的总结
1.Group By 语句中:select指定的字段必须是“分组依据字段”,其他字段若想出现在select中则必须包含在聚合函数中. 例如: select [col1], avg([col2]) ...
- jQuery中的find()与filter()
这是jQuery里常用的2个方法.他们2者功能是完全不同的. <div class="css"> <p class="rain">测试1 ...
- 160421、MyBatis批量插入数据
在程序中封装了一个List集合对象,然后需要把该集合中的实体插入到数据库中,由于项目使用了Spring+MyBatis的配置,所以打算使用MyBatis批量插入,由于之前没用过批量插入,在网上找了一些 ...
- CentOS添加PHP至环境变量
一,修改/etc/profile文件在尾部添加 PATH=$PATH:/usr/local/php/bin export PATH PATH后面跟着是的php的执行文档路径,可以追加多个以冒号分割 e ...
- poj3585 Accumulation Degree【树形DP】【最大流】
Accumulation Degree Time Limit: 5000MS Memory Limit: 65536K Total Submissions:3151 Accepted: 783 ...
- Servlet------>jsp自定义标签4(重复标签体)
4.控制标签体内容执行五次(tld中的配置,和jsp我就省略了,详细请看jsp自定义标签1)这里这个方法是继承了tag接口的实现类,这个实现类里不只实现了tag接口,还有tag接口的子接口,也就是It ...
- webpack4学习笔记(三)
webpack打包资源文件 1,打包css文件,先安装css-loader和style-loader npm install --save-dev css-loader style-loader we ...
- Apache Kafka源码分析 – Broker Server
1. Kafka.scala 在Kafka的main入口中startup KafkaServerStartable, 而KafkaServerStartable这是对KafkaServer的封装 1: ...
- python(五)常用模块学习
版权声明:本文为原创文章,允许转载,转载时请务必以超链接形式标明文章 原始出处 .作者信息和本声明. https://blog.csdn.net/fgf00/article/details/52357 ...