题目链接:http://acm.hdu.edu.cn/showproblem.php?pid=4135

题目解析:

给你一个闭区间[A,B](1 <= A <= B <= 1015),以及一个正整数N,求[A,B]中与N互质的个数,可以先求[1,B]中与N互质的个数,在求[1,A-1]中与N互质的个数。之后两结果相减便得到答案。另外这题只要知道质因数的性质就很容易做了。任意一个正整数(除了1)都可以分解成有限个质数因子的乘积。那么假如两个数互质,那么这两个数没有相同质因子。所以若一个数跟n不互质,那么这个的数的质因子肯定也有属于n的质因子,那么就用容斥原理求出所有跟n不互质的所有数的个数。然后再用总的减去即可。

#include <iostream>
#include <stdio.h>
#include <string.h>
#include <algorithm>
#include <queue>
using namespace std;
typedef __int64 ll;
ll x,b,n,sum,sum2,top,a[];
ll gcd(ll A,ll B)
{
return B==?A:gcd(B,A%B);
}
void dfs(ll now,ll num,ll lcm,ll &sum)
{
lcm=a[now]/gcd(a[now],lcm)*lcm;
if(num&)
{
sum+=b/lcm;
}
else
{
sum-=b/lcm;
}
for(int i=now+; i<top; i++)
dfs(i,num+,lcm,sum);
}
void dfs2(ll now,ll num,ll lcm,ll &sum2)
{
lcm=a[now]/gcd(a[now],lcm)*lcm;
if(num&)
{
sum2+=(x-)/lcm;
}
else
{
sum2-=(x-)/lcm;
}
for(int i=now+; i<top; i++)
dfs2(i,num+,lcm,sum2);
}
int main()
{
int T;
ll temp;
scanf("%d",&T);
for(int K=; K<=T; K++)
{
scanf("%I64d%I64d%I64d",&x,&b,&n);
sum=;
sum2=;
top=;
temp=n;
for(int i=; i*i<=temp; i++)
{
if(temp%i==)
{
temp/=i;
a[top++]=i;
while(temp%i==)
{
temp/=i;
}
}
}
if(temp!=)
a[top++]=temp;
for(int i=; i<top; i++)
{
dfs(i,,a[i],sum);
}
for(int i=; i<top; i++)
{
dfs2(i,,a[i],sum2);
}
sum=(b-x+)-(sum-sum2);
printf("Case #%d: %I64d\n",K,sum);
}
return ;
}

HDU4135Co-prime(容斥原理)的更多相关文章

  1. Codeforces1036F Relatively Prime Powers 【容斥原理】

    题目分析: 这种题目标题写莫比乌斯反演会不会显得太恐怖了,那就容斥算了. gcd不为1的肯定可以开根.所以把根式结果算出来就行了. 辣鸡题目卡我精度. 代码: #include<bits/std ...

  2. hdu4059 The Boss on Mars(差分+容斥原理)

    题意: 求小于n (1 ≤ n ≤ 10^8)的数中,与n互质的数的四次方和. 知识点: 差分: 一阶差分: 设  则    为一阶差分. 二阶差分: n阶差分:     且可推出    性质: 1. ...

  3. HDU 2204Eddy's爱好(容斥原理)

    Eddy's爱好 Time Limit:1000MS     Memory Limit:32768KB     64bit IO Format:%I64d & %I64u Submit Sta ...

  4. 【BZOJ-2440】完全平方数 容斥原理 + 线性筛莫比乌斯反演函数 + 二分判定

    2440: [中山市选2011]完全平方数 Time Limit: 10 Sec  Memory Limit: 128 MBSubmit: 2371  Solved: 1143[Submit][Sta ...

  5. HDU 1695 GCD (欧拉函数+容斥原理)

    GCD Time Limit: 6000/3000 MS (Java/Others)    Memory Limit: 32768/32768 K (Java/Others)Total Submiss ...

  6. 2014 Super Training #3 H Tmutarakan Exams --容斥原理

    原题: URAL 1091  http://acm.timus.ru/problem.aspx?space=1&num=1091 题意:要求找出K个不同的数字使他们有一个大于1的公约数,且所有 ...

  7. HDU 4059 容斥原理+快速幂+逆元

    E - The Boss on Mars Time Limit:1000MS     Memory Limit:32768KB     64bit IO Format:%I64d & %I64 ...

  8. POJ 3904 Sky Code (容斥原理)

    B - Sky Code Time Limit:1000MS     Memory Limit:65536KB     64bit IO Format:%I64d & %I64u Submit ...

  9. HDU 2841 Visible Trees 数论+容斥原理

    H - Visible Trees Time Limit:1000MS     Memory Limit:32768KB     64bit IO Format:%I64d & %I64u S ...

  10. HDU4135 Co-prime(容斥原理)

    题目求[A,B]区间内与N互质数的个数. 可以通过求出区间内与N互质数的个数的前缀和,即[1,X],来得出[A,B]. 那么现在问题是求出[1,X]区间内与N互质数的个数,考虑这个问题的逆问题:[1, ...

随机推荐

  1. cocos2d-x 2.2 创建项目

    楼主用的是2.2版本号 曾经的版本号是要在vs中加入模版 建立项目 但新版本号更新后使用python建立项目 最好是python2.7以上 找到create_project.py文件所在路径  too ...

  2. HTML&CSS精选笔记_表格与表单

    表格与表单 表格标记 创建表格 要想创建表格,就需要使用表格相关的标记 <table>     <tr>     <td>单元格内的文字</td>   ...

  3. 漫谈.Net关键字系列之一Sealed与Final(转)

    转自:http://www.cnblogs.com/isline/archive/2010/08/31/1813396.html Sealed与Final修饰符其实并不是一个语言平台的产物,他们有着各 ...

  4. PyQt4消息窗口

    默认情况下,如果我们单击了窗口标题栏上的X标记,窗口就会被关闭.但是有些时候我们想要改变这一默认行为.比如,我们正在编辑的文件内容发生了变化,这时若单击X标记关闭窗口,编辑器就应当但出确认窗口. #! ...

  5. <转>主成分分析(Principal components analysis)-最大方差解释,最小平方差解释

    转自http://www.cnblogs.com/jerrylead/archive/2011/04/18/2020209.html http://www.cnblogs.com/jerrylead/ ...

  6. c++11——tuple元组

    tuple是一个固定大小的不同类型值的集合,是泛化的 std::pair.可以当做一通用的结构体使用,不需要创建结构体而又获取结构体的特征,在某些情况下可以取代结构体,使程序简洁.直观. 创建tupl ...

  7. LeetCode——Happy Number

    Description: Write an algorithm to determine if a number is "happy". A happy number is a n ...

  8. 关于Activity的getReferrer():如何在Activity中获取调用者?

    http://blog.csdn.net/u013553529/article/details/53856800 关于Activity的getReferrer()之一:如何在Activity中获取调用 ...

  9. POJ 3461 Oulipo[附KMP算法详细流程讲解]

      E - Oulipo Time Limit:1000MS     Memory Limit:65536KB     64bit IO Format:%I64d & %I64u Submit ...

  10. zabbix修改和查看登录密码

    author:hendsen chen date : 2018-08-30  16:48:18 1,登陆zabbix的服务器,查看zabbix的登陆密码: [root@jason ~]# mysql ...