Code:

#include<cstdio>
#include<cstring>
#include<cmath>
#include<iostream>
using namespace std;
const int maxn=100000+233;
typedef long long ll;
int v[maxn],vis[maxn];
int m[maxn];
int num; //质因子个数
ll ans=0;
ll A,B;
ll gcd(ll a,ll b){return b==0?a:gcd(b,a%b);}
void init(ll N){
int range=(int)sqrt(N),cnt=0;
for(int i=2;i<=range;++i){
if(!vis[i])v[++cnt]=i;
for(int j=1;j<=cnt&&v[j]*i<=range;++i){
vis[i*v[j]]=1;
if(i%v[j]==0)break;
}
}
ll t=N;
for(int i=1;i<=cnt;++i)if(N%v[i]==0)m[++num]=v[i];
for(int i=1;i<=num&&t!=1;++i)while(t%m[i]==0)t/=m[i];
if(t>range)m[++num]=t;
}
void dfs(int cur,ll lcm,int id)
{
if(cur>num)return;
lcm=m[cur]/gcd(m[cur],lcm)*lcm;
if(id)
ans+=(B/lcm)-((A-1)/lcm);
else ans-=(B/lcm)-((A-1)/lcm); for(int i=cur+1;i<=num;++i)
dfs(i,lcm,!id);
}
int main()
{ int T;scanf("%d",&T);
for(int cas=1;cas<=T;++cas)
{
memset(v,0,sizeof(v));
memset(vis,0,sizeof(vis));
memset(m,0,sizeof(m));
num=ans=0;
ll N;
scanf("%lld%lld%lld",&A,&B,&N);
init(N);
for(int i=1;i<=num;++i)
dfs(i,m[i],1);
printf("Case #%d: %lld\n",cas,B-A-ans+1);
}
return 0;
}

  

Co-prime HDU - 4135_容斥计数的更多相关文章

  1. How many integers can you find HDU - 1796_容斥计数

    Code: #include<cstdio> using namespace std; typedef long long ll; const int R=13; ll a[R]; ll ...

  2. HDU 4135 容斥

    问a,b区间内与n互质个数,a,b<=1e15,n<=1e9 n才1e9考虑分解对因子的组合进行容斥,因为19个最小的不同素数乘积即已大于LL了,枚举状态复杂度不会很高.然后差分就好了. ...

  3. HDU 2841 容斥 或 反演

    $n,m <= 1e5$ ,$i<=n$,$j<=m$,求$(i⊥j)$对数 /** @Date : 2017-09-26 23:01:05 * @FileName: HDU 284 ...

  4. HDU 1695 容斥

    又是求gcd=k的题,稍微有点不同的是,(i,j)有偏序关系,直接分块好像会出现问题,还好数据规模很小,直接暴力求就行了. /** @Date : 2017-09-15 18:21:35 * @Fil ...

  5. HDU 4059 容斥初步练习

    #include <iostream> #include <cstring> #include <cstdio> #include <algorithm> ...

  6. 【BZOJ 4455】 [Zjoi2016]小星星 容斥计数

    dalao教导我们,看到计数想容斥……卡常策略:枚举顺序.除去无效状态.(树结构) #include <cstdio> #include <cstring> #include ...

  7. 数学(容斥计数):LNOI 2016 方

    Description 上帝说,不要圆,要方,于是便有了这道题.由于我们应该方,而且最好能够尽量方,所以上帝派我们来找正方形 上帝把我们派到了一个有N行M列的方格图上,图上一共有(N+1)×(M+1) ...

  8. Codeforces.997C.Sky Full of Stars(容斥 计数)

    题目链接 那场完整的Div2(Div1 ABC)在这儿.. \(Description\) 给定\(n(n\leq 10^6)\),用三种颜色染有\(n\times n\)个格子的矩形,求至少有一行或 ...

  9. 一本通 1783 矩阵填数 状压dp 容斥 计数

    LINK:矩阵填数 刚看到题目的时候感觉是无从下手的. 可以看到有n<=2的点 两个矩形. 如果只有一个矩形 矩形外的方案数容易计算考虑 矩形内的 必须要存在x这个最大值 且所有值<=x. ...

随机推荐

  1. dubbo-helloword(二)

    项目框架搭建 工程目录创建 entity存放业务实体类 interface存放server接口 concumer是服务消费者(依赖interface和entity) provider是服务提供者(依赖 ...

  2. 基于I/O的Server/Client实现

    在前面的文章中讲了基于NIO实现的Server/Client.本文就讲讲基于同步堵塞式I/O实现的Server/Client好与前面的NIO中的Server/Client进行对照. 网络编程中须要解决 ...

  3. 检測wifi是否须要portal验证 公共场所wifi验证

    何为wifi portal验证? 平时在商场,咖啡厅,银行等公共场所.我们手机提示:有可用WLAN.这些WIFI能够直接连接,不须要password,但须要我们手动在手机网页上进行验证,通常是输入一个 ...

  4. STM32F4——GPIO基本应用及复用

    IO基本应用 一.IO基本结构: 针对STM32F407有7组IO.分别为GPIOA~GPIOG,每组IO有16个IO口,则有112个IO口. 当中IO口的基本结构例如以下: 二.工作方式: ST ...

  5. 简陋版:基于python的自动化测试框架开发

    项目背景: XXXX银行项目采用的是B/S架构,主要是为了解决银行业务中的柜员.凭证.现金.账务等来自存款.贷款.会计模块的管理. 手工弊端: 1.项目业务复杂度高,回归测试工作量大2.单个接口功能比 ...

  6. 关于SharePoint讨论板的一些知识(2)--视图中的栏目

    关于SharePoint讨论板的一些知识(2)--视图中的栏目         新建讨论后,默认显示四个栏目:主题.创建者.答复和上次更新时间.         从功能区的当前视图能够看出这是默认的主 ...

  7. POJ3255 Roadblocks 严格次短路

    题目大意:求图的严格次短路. 方法1: SPFA,同时求单源最短路径和单源次短路径.站在节点u上放松与其向量的v的次短路径时时,先尝试由u的最短路径放松,再尝试由u的次短路径放松(该两步并非非此即彼) ...

  8. CodeForces--621A--Wet Shark and Odd and Even(数学水题)

    Wet Shark and Odd and Even Time Limit: 2000MS   Memory Limit: 262144KB   64bit IO Format: %I64d & ...

  9. C#编译器优化

    C#编译器优化 https://www.cnblogs.com/podolski/p/8987595.html 使用C#编写程序,给最终用户的程序,是需要使用release配置的,而release配置 ...

  10. javascript定义类或对象的方式

    本文介绍的几种定义类或对象的方式中,目前使用最广泛的是:混合的构造函数/原型方式.动态原型方式.不要单独使用经典的构造函数或原型方式. 工厂方式 构造器函数 原型方式 混合的构造函数/原型方式 动态原 ...