Codeforces 776E: The Holmes Children (数论 欧拉函数)
先看题目中给的函数f(n)和g(n)
对于f(n),若自然数对(x,y)满足 x+y=n,且gcd(x,y)=1,则这样的数对对数为f(n)
证明f(n)=phi(n)
设有命题 对任意自然数x满足x<n,gcd(x,n)=1等价于gcd(x,y)=1 成立,则该式显然成立,下面证明这个命题。
假设gcd(x,y)=1时,gcd(x,n)=k!=1,则n=n'k,x=x'k,gcd(x,y)=gcd(x,n-x)=gcd(x'k,(n'-x')k)=k,与假设gcd(x,y)=1不符,故gcd(x,y)=1时,gcd(x,n)=1。同理可证gcd(x,n)=1时,gcd(x,y)=1。
综上,f(n)=phi(n)
对于g(n),
,这个本人就不在博客里献丑了,推荐找本专门讲数论的书看下,估计都会有,这个可以当成是结论用,即 n的所有因数的欧拉函数之和等于n本身
解决了函数f(n)和g(n)的意义,剩下的就好解多了
时间上,由于连续进行两次n=phi(n)的运算至少可以将n减小为原来的一半,故肯定是不会T啦
#include<bits/stdc++.h>
using namespace std;
typedef long long LL; //单独求解单个phi(x)
LL Eular(LL n)
{
LL ret=n;
for(LL i=; i*i<= n; i++)
if(n%i==)
{
ret-=ret/i;
while(n%i==) n/= i;
}
if(n>) ret-=ret/n;
return ret;
} LL n,k; int main()
{
while(cin>>n>>k)
{
k=(k+)/;
while(k-- && n>)
n=Eular(n);
cout<<n%<<endl;
}
}
Codeforces 776E: The Holmes Children (数论 欧拉函数)的更多相关文章
- Codeforces Round #538 (Div. 2) F 欧拉函数 + 区间修改线段树
https://codeforces.com/contest/1114/problem/F 欧拉函数 + 区间更新线段树 题意 对一个序列(n<=4e5,a[i]<=300)两种操作: 1 ...
- 数论-欧拉函数-LightOJ - 1370
我是知道φ(n)=n-1,n为质数 的,然后给的样例在纸上一算,嗯,好像是找往上最近的质数就行了,而且有些合数的欧拉函数值还会比比它小一点的质数的欧拉函数值要小,所以坚定了往上找最近的质数的决心—— ...
- 【poj 3090】Visible Lattice Points(数论--欧拉函数 找规律求前缀和)
题意:问从(0,0)到(x,y)(0≤x, y≤N)的线段没有与其他整数点相交的点数. 解法:只有 gcd(x,y)=1 时才满足条件,问 N 以前所有的合法点的和,就发现和上一题-- [poj 24 ...
- Codeforces_776E: The Holmes Children (数论 欧拉函数)
题目链接 先看题目中给的函数f(n)和g(n) 对于f(n),若自然数对(x,y)满足 x+y=n,且gcd(x,y)=1,则这样的数对对数为f(n) 证明f(n)=phi(n) 设有命题 对任意自然 ...
- BZOJ-2190 仪仗队 数论+欧拉函数(线性筛)
今天zky学长讲数论,上午水,舒爽的不行..后来下午直接while(true){懵逼:}死循全程懵逼....(可怕)Thinking Bear. 2190: [SDOI2008]仪仗队 Time Li ...
- 数论 - 欧拉函数模板题 --- poj 2407 : Relatives
Relatives Time Limit: 1000MS Memory Limit: 65536K Total Submissions: 11372 Accepted: 5544 Descri ...
- 数论 - 欧拉函数的运用 --- poj 3090 : Visible Lattice Points
Visible Lattice Points Time Limit: 1000MS Memory Limit: 65536K Total Submissions: 5636 Accepted: ...
- HDU1695-GCD(数论-欧拉函数-容斥)
GCD Time Limit: 6000/3000 MS (Java/Others) Memory Limit: 32768/32768 K (Java/Others) Total Submis ...
- 【数论·欧拉函数】SDOI2008仪仗队
题目描述 作为体育委员,C君负责这次运动会仪仗队的训练.仪仗队是由学生组成的N * N的方阵,为了保证队伍在行进中整齐划一,C君会跟在仪仗队的左后方,根据其视线所及的学生人数来判断队伍是否整齐(如右图 ...
随机推荐
- php strtotime,mktime,DateTime函数处理时间累加问题
时间戳(年月日时分秒) 使用strtotime函数,结合+1 month,-1 month,next month,last month的时候会出现一些问题. demo示例: //时间"20 ...
- Packet Tracer基本使用
Cisco Packet Tracer基本使用 1:添加设备:路由器选择1841,交换机选择2960二层交换机,添加PC.服务器Server(End Devices) 2:添加连接:这里指以太网连接, ...
- 生产环境下,oracle不同用户间的数据迁移。第二部分
任务名称:生产环境下schema ELON数据迁移至schema TIAN######################################## 测试二:测试参数remap_tablespa ...
- JAVA中short和short相加自动转化为int
精度小于int的数值运算的时候都回被自动转换为int后进行计算 所以,下面的代码会报编译错误 short s1 = 1;short s2 = 1;s1= (s1+s2); 必须改成: short s1 ...
- ubuntu更换源
1.备份源 cd /etc/apt/ sudo cp sources.list sources.list.bak 2.更换阿里源 sudo vim /etc/apt/sources.list 中 ...
- php面向对象重的抽象类,接口类与静态
static 静态 <?php class ren { public $name; public static $sex; static function shao() { echo " ...
- GARENA笔试sql20190926
create database garena; use garena; create table players( account_id int, name varchar(20), country ...
- Convolutional Neural Networks(4):Feature map size,Padding and Stride
在CNN(1)中,我们用到下图来说明卷积之后feature maps尺寸和深度的变化.这一节中,我们讨论feature map size, padding and stride. 首先,在Layer1 ...
- SimplePropertyRetriever
var SimplePropertyRetriever = { getOwnEnumerables: function (obj) { return this._getProp ...
- python:while循环语句及练习题
while循环语句及练习题 Python 编程中 while 语句用于循环执行程序,即在某条件下,循环执行某段程序,以处理需要重复处理的相同任务.其基本形式为: while 判断条件: 执行语句... ...