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 ...
随机推荐
- hdu 1140:War on Weather(计算几何,水题)
War on Weather Time Limit: 2000/1000 MS (Java/Others) Memory Limit: 65536/32768 K (Java/Others)To ...
- Loadrunner_http长连接设置
最近协助同事解决了几个问题,也对loadrunner的一些设置加深了理解,关键是更加知其所以然. ljonathan http://www.51testing.com/html/48/202848-2 ...
- wpf中用户控件的属性重用
我们经常会抽取一些可重用的控件,某个属性是否需要重用,直接决定了这个属性的绑定方式. 1.完全不可重用的控件 有一些与业务强相关的控件,它们的属性完全来自ViewModel,越是相对复杂的控件,越容易 ...
- c# word excel 二进制 存入数据库
在Sql Server中存储.读写Word文件,需要将指定表字段添加为Image类型,示例表结构为:1 CREATE TABLE CONTRACTS ( 2 ID VARCHAR (50), 3 CO ...
- ios 的EditBox点击空白处不隐藏的解决方案
原因:参数少了前缀CC 解决方案:修改 cocos/platform/ios/CCEAGLView-ios.mm 中的 handleTouchesAfterKeyboardShow -(void) h ...
- IOS开发学习笔记039-autolayout 代码实现
本文转载至 http://www.cnblogs.com/songliquan/p/4548206.html 1.代码实现比较复杂 代码实现Autolayout的步骤 利用NSLayoutConstr ...
- KVC(Key-Value-Coding)和KVO(Key-Value-Observer)
KVC(Key-Value-Coding)和KVO(Key-Value-Observer) 目录 概述 KVC的基本用法 KVC的运用 KVO的基本用法 KVO的运用 概述 键-值编码是一个用于间接访 ...
- CH5401 没有上司的舞会【树形DP】
5401 没有上司的舞会 0x50「动态规划」例题 描述 Ural大学有N名职员,编号为1~N.他们的关系就像一棵以校长为根的树,父节点就是子节点的直接上司.每个职员有一个快乐指数,用整数 H_i 给 ...
- R中,将从MySQL中获取的结果字符列表转化为向量,并测试绘制图形
# 使用RMySQL操作数据库 # 载入DBI和RMySQL包 library(DBI) library(RMySQL) # 创建数据库连接 con <- dbConnect(MySQL(),h ...
- PM 项目管理
BugTracker:http://www.ifdefined.com/bugtrackernet.html PM:http://www.zentao.net/download.html 51cto: ...