Given a number N, you are asked to count the number of integers between A and B inclusive which are relatively prime to N. 
Two integers are said to be co-prime or relatively prime if they have no common positive divisors other than 1 or, equivalently, if their greatest common divisor is 1. The number 1 is relatively prime to every integer.

·······

这道题分几步:

1、先把n用算术基本原理拆分成不同的质数,如果a~b中的数是这些质数的倍数那其肯定不与n互质,a~b的总个数减去不与n互质的数剩下来就是与n互质的数啦

2、先计算1~a-1中与n互质的个数,再计算1~b中与n互质的个数,相减。

#include<iostream>
using namespace std;
typedef long long ll;
ll a[];
int main()
{
ll t;
cin>>t;
for(ll ii=;ii<=t;ii++)
{
ll x,y,n;
cin>>x>>y>>n;
ll num=,sum=,all=,times;
for(int i=;i*i<=n;i++) //向a数组里塞n的质因数
{
if(n%i==)
{
num++;
a[num]=i;
}
while(n%i==)
{
n=n/i;
}
}
if(n>) a[++num]=n;
for(int i=;i<(<<num);i++)
{
times=,sum=;
for(int j=;j<num;j++) //num个因数,乘了几个
{
if(&(i>>j)) //判断有没有选中第j个因数
{
sum*=a[j+];
times++;
}
}
if(sum==||sum==)
continue;
if(times%==)
{
all+=y/sum;
all-=(x-)/sum;
}
else{
all-=y/sum;
all+=(x-)/sum;
}
}
printf("Case #%lld: %lld\n",ii,y-x+-all);
}
return ;
}

以上。

最新文章

  1. [原创] Go语言在Centos上的部署
  2. WPF显示GIF图的几种方式
  3. std::string的split函数
  4. 总结--解决 mysql 中文乱码
  5. 20145233韩昊辰 《Java程序设计》实验报告一:Java开发环境的熟悉(Windows+IDEA)
  6. Android Volley框架的使用(三)
  7. HDU 4348 To the moon 可持久化线段树,有时间戳的区间更新,区间求和
  8. 非spring环境中配置文件工具
  9. Oracle 创建用户相关
  10. 微软源代码管理工具TFS2013安装与使用图文教程
  11. 熟人UML
  12. java编码GBK的不可映射字符
  13. 原生js实现双向数据绑定
  14. pytorch Debug —交互式调试工具Pdb (ipdb是增强版的pdb)-1-使用说明
  15. 765. 有效的三角形.md
  16. mysql案例 ~ 主从复制延迟处理(3)
  17. 在微信开发中如果WeixinJSBridge.call(&#39;closeWindow&#39;);关闭窗口无效!
  18. [ES6] 10. Array Comprehensions
  19. [CF480E]Parking Lot
  20. Github删除项目

热门文章

  1. 北大ACM - POJ试题分类(转自EXP)
  2. 为一台全新的电脑构建JavaEE开发环境
  3. linux 后台 运行
  4. fsLayuiPlugin附件上传使用说明
  5. Maven的New中没有Servlet问题(IDEA)
  6. springboot自定义异常RESTful返回异常
  7. Flutter子组件调用父组件方法修改父组件参数
  8. 重学C语言
  9. hadoop查看文件大小
  10. kotlin陪伴对象