http://www.fjutacm.com/Problem.jsp?pid=1251

想了很久,一开始居然还直接枚举因子d,计算重复了。

首先你要找与n的最大公因子大于m的x的个数。

\[\sum\limits_{x=1}^n [gcd(x,n)>=m]
\]

不能直接枚举d,d必须是n的因子,否则与n的gcd都不可能是d。

\[\sum\limits_{d=m \& d|n}^n \sum\limits_{x=1}^n [gcd(x,n)==d]
\]

后面那个有点眼熟?

\[\sum\limits_{d=m \& d|n}^n \sum\limits_{x=1}^{n/d} [gcd(x,n/d)==1]
\]

果然是欧拉函数:

\[\sum\limits_{d=m \& d|n}^n \varphi(n/d)
\]

然后,查了一下,因子的个数实在不会太多1e8不到1000个,1e17不到100000个。

那就直接质因数分解然后搜索。

一发AC。

#include<bits/stdc++.h>
using namespace std;
typedef long long ll; const int N=100000; int pri[N+5],tot,zhi[N+5];
void sieve(int n) {
zhi[1]=1;
for(int i=2; i<=n; i++) {
if(!zhi[i])
pri[++tot]=i;
for(int j=1; j<=tot&&i*pri[j]<=n; j++) {
zhi[i*pri[j]]=1;
if(i%pri[j])
;
else
break;
}
}
} ll phi(int n) {
ll res=n;
for(int i=1; i<=tot; i++) {
if(n%pri[i]==0) {
res=res/pri[i]*(pri[i]-1);
while(n%pri[i]==0) {
n/=pri[i];
}
}
if(n==1)
return res;
}
if(n==1)
return res;
else {
res=res/n*(n-1);
return res;
}
} int t,n,m; int fac[100];
int pfac[100];
int ftop=0;
void fj(int n) {
ftop=0;
for(int i=1; i<=tot; i++) {
if(n%pri[i]==0) {
fac[++ftop]=pri[i];
pfac[ftop]=0;
while(n%pri[i]==0) {
n/=pri[i];
pfac[ftop]++;
}
}
}
if(n!=1) {
fac[++ftop]=n;
pfac[ftop]=1;
}
return;
} ll ans; int power(int p,int n) {
if(n==0)
return 1;
int res=1;
while(n--)
res*=p;
return res;
} void dfs(int pos,int cur) {
if(pos>ftop) {
if(cur>=m)
ans+=phi(n/cur);
return;
}
for(int i=0; i<=pfac[pos]; i++) {
dfs(pos+1,cur*power(fac[pos],i));
}
} int main() {
#ifdef Yinku
freopen("Yinku.in","r",stdin);
#endif // Yinku
sieve(N);
scanf("%d",&t);
while(t--) {
scanf("%d%d",&n,&m);
ans=0;
fj(n);
dfs(1,1);
printf("%I64d\n",ans);
}
}

T^TOJ - 1251 - 。◕‿◕。TMD - 欧拉函数 - 质因数分解的更多相关文章

  1. HDU1695:GCD(容斥原理+欧拉函数+质因数分解)好题

    题目链接:http://acm.hdu.edu.cn/showproblem.php?pid=1695 题目解析: Given 5 integers: a, b, c, d, k, you're to ...

  2. acm数论之旅--欧拉函数的证明

    随笔 - 20  文章 - 0  评论 - 73 ACM数论之旅7---欧拉函数的证明及代码实现(我会证明都是骗人的╮( ̄▽ ̄)╭) https://blog.csdn.net/chen_ze_hua ...

  3. hdu2588 GCD (欧拉函数)

    GCD 题意:输入N,M(2<=N<=1000000000, 1<=M<=N), 设1<=X<=N,求使gcd(X,N)>=M的X的个数.  (文末有题) 知 ...

  4. BZOJ 2705: [SDOI2012]Longge的问题 [欧拉函数]

    2705: [SDOI2012]Longge的问题 Time Limit: 3 Sec  Memory Limit: 128 MBSubmit: 2553  Solved: 1565[Submit][ ...

  5. BZOJ 2818: Gcd [欧拉函数 质数 线性筛]【学习笔记】

    2818: Gcd Time Limit: 10 Sec  Memory Limit: 256 MBSubmit: 4436  Solved: 1957[Submit][Status][Discuss ...

  6. COGS2531. [HZOI 2016]函数的美 打表+欧拉函数

    题目:http://cogs.pw/cogs/problem/problem.php?pid=2533 这道题考察打表观察规律. 发现对f的定义实际是递归式的 f(n,k) = f(0,f(n-1,k ...

  7. poj2478 Farey Sequence (欧拉函数)

    Farey Sequence 题意:给定一个数n,求在[1,n]这个范围内两两互质的数的个数.(转化为给定一个数n,比n小且与n互质的数的个数) 知识点: 欧拉函数: 普通求法: int Euler( ...

  8. 51Nod-1136 欧拉函数

    51Nod: http://www.51nod.com/onlineJudge/questionCode.html#!problemId=1136 1136 欧拉函数 基准时间限制:1 秒 空间限制: ...

  9. 欧拉函数 - HDU1286

    欧拉函数的作用: 有[1,2.....n]这样一个集合,f(n)=这个集合中与n互质的元素的个数.欧拉函数描述了一些列与这个f(n)有关的一些性质,如下: 1.令p为一个素数,n = p ^ k,则 ...

随机推荐

  1. 根据ip识别地区

    <script src="http://int.dpool.sina.com.cn/iplookup/iplookup.php?format=js"></scri ...

  2. PythonCookBook笔记——数字日期和时间

    数字日期和时间 数字的四舍五入 用round函数,指定值和小数位数. >>> round(1.23, 1) 1.2 >>> round(1.27, 1) 1.3 & ...

  3. EasyDarwin开源音频解码项目EasyAudioDecoder:基于ffmpeg的安卓音频(AAC、G726)解码库(第一部分,ffmpeg-android的编译)

    ffmpeg是一套开源的,完整的流媒体解决方案.基于它可以很轻松构建一些强大的应用程序.对于流媒体这个行业,ffmpeg就像圣经一样的存在.为了表达敬意,在这里把ffmpeg官网的一段简介搬过来,ff ...

  4. UI标签库专题四:JEECG智能开发平台 Upload(上传标签)

     1. Upload(上传标签) 1.1.  參数 属性名 类型 描写叙述 是否必须 默认值 id string 上传控件唯一标示 是 null name string 控件name 是 null ...

  5. mongodb学习之:聚合

    @font-face { font-family: "Times New Roman"; }@font-face { font-family: "宋体"; }p ...

  6. Interpreter Pattern

    1.Interpreter模式的目的就是提供一个一门定义语言的语法表示的解释器,然后通过这个解释器来解释语言中的句子. 2.Interpreter模式结构图 3.实现 #ifndef _CONTEXT ...

  7. mtk6589显示子系统笔记(一)

    拿到MT6589的版本不久,发现显示系统代码结构改变很大.做些备忘,后续不忙的时候可以继续看. MT6589之前的MTK的Android系统显示系统同featurePhone基本一致. 先来回顾下MT ...

  8. H5与native有啥区别?

    app测试,H5与native有啥区别? native是使用原生系统内核的,相当于直接在系统上操作.是我们传统意义上的软件,更加稳定. 但是H5的APP先得调用系统的浏览器内核,相当于是在网页中进行操 ...

  9. laravel基础课程---2、Laravel配置文件、路由及php artisan(php artisan是什么)

    laravel基础课程---2.Laravel配置文件.路由及php artisan(php artisan是什么) 一.总结 一句话总结: PHP工具匠:php artisan,其实本身就是一些PH ...

  10. coeforces 665D D. Simple Subset(最大团orsb题)

    题目链接: D. Simple Subset time limit per test 1 second memory limit per test 256 megabytes input standa ...