题目链接:https://vjudge.net/contest/125308#problem/G

题意:求有多少x(1<=x<=n),使得gcd(x,n)>=m;     先求n的所有大于等于m的因子, 刚开始用了模拟,超时,看了下往上的题解,说要用到欧拉函数求解,就看了下欧拉函数,  ans=∑phi[n/ei];phi[i]为欧拉函数,为不大于i且与i互质的正整数个数 对于一个与ei互质且小于等于n/ei的正整数p来说,p*ei<=n,gcd(p*ei,n)=ei;则phi[n/ei]就是1~n中的与n最大公约数是ei的个数。而n与1~n的最大公约数必定是n的因子。 所以符合gcd(x,n)>=m的x为n所有大于等于m因子的倍数,用phi即可避免重复。

那么此题就很容易解了

AC代码:

 #include <stdio.h>
#define size 1000000
int a[size]; int P( int n )
{
int ans = n;
for( int i = ; i*i <= n ; i++ )
{
if( n%i== )
{
ans = ans / i * (i-);
while( n%i== )
n /= i;
}
}
if(n>)
ans = ans / n * (n-);
return ans;
} int main()
{ int t , n , m , t1 , ans;
scanf("%d",&t);
while( t-- )
{
scanf("%d%d",&n,&m);
t1 = ans = ;
for( int i = ; i*i<=n ; i++ )
{
if( n%i == )
{
if(i*i==n)
a[t1++] = i;
else
{
a[t1++] = i;
a[t1++] = n/i;
}
}
}
for( int i = ; i<t1 ; i++ )
{
if( a[i]>=m )
{
ans += P( n/a[i] );
}
}
printf("%d\n",ans);
}
return ;
}

最新文章

  1. 你真的了解UITabBarController吗?
  2. C和指针 第十三章 习题
  3. .gitignore失效问题解决
  4. 深入探讨 java.lang.ref 包
  5. JSON、使用JSON进行数据交换的基础和原理
  6. MySQL数据丢失情况分析
  7. html&amp;css静态页面
  8. android 写文件权限
  9. mp3播放器
  10. MapReduce常见算法
  11. .NET Core阿里大于短信发送SDK修改以及使用
  12. 安卓---RedioButton(单选按钮)、CheckBox(复选按钮)
  13. asp.net core1.1的PlatformAbstraction源码
  14. 聚合函数对NULL统计
  15. 安装yii2 需要token 记录
  16. m文件转换c代码
  17. springboot的小知识总结
  18. 洛谷.3224.[HNOI2012]永无乡(Splay启发式合并)
  19. 秒懂,Java 注解 (Annotation)你可以这样学
  20. 缓慢变化维 (Slowly Changing Dimension) 常见的三种类型及原型设计(转)

热门文章

  1. PAT mooc DataStructure 4-2 SetCollection
  2. ZOJ 3696 Alien&#39;s Organ
  3. setTimeout和setInterval的注意事项
  4. HFS远程命令执行漏洞入侵抓鸡黑阔服务器
  5. Ubuntu 使用phpmyadmin,报错#1146 - Table ‘phpmyadmin.pma_table_uiprefs&#39; doesn&#39;t exist
  6. ACM/ICPC 之 ACM计算机工厂-EK算法(POJ3436)
  7. webstorm抽取函数
  8. 使用jquery实现单选框、多选框取消选中状态
  9. IIS7.5 平台.NET无后缀名伪静态实现办法-服务器配置
  10. caffe下训练时遇到的一些问题汇总