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

题意:求[A,B]与N互质的数的个数

#include<iostream>
#include<algorithm>
#include<cstring>
#include<cstdio>
using namespace std;
typedef long long ll;
const int M=1e5+;
ll a[M];
ll A,B,N;
int tot;
void init(){
tot=;
ll NN=N;
for(int i=;i*i<=NN;i++){
if(N%i==){
a[tot++]=i;
while(N%i==)
N/=i;
}
}
if(N>)
a[tot++]=N;
}
ll solve(ll x){
ll ans=;
for(ll i=;i<((ll)<<tot);i++){///枚举N的因子相乘子集
ll sum=;
int num=;
for(ll j=;j<tot;j++){
if(i&((ll)<<j))
sum*=a[j],num++;
}
ll tmp=x/sum;
///奇加偶减(容斥原理)
///ans为这些因子相乘能组成的数的个数(小于x)之和
if(num&)
ans+=tmp;
else
ans-=tmp;
}
return x-ans;
}
int main(){
int t;
scanf("%d",&t);
for(int i=;i<=t;i++){
scanf("%lld%lld%lld",&A,&B,&N);
init(); printf("Case #%d: %lld\n",i,solve(B)-solve(A-1ll));
}
return ;
}

ecf:https://codeforces.com/contest/1295/problem/D

思路:https://www.cnblogs.com/heyuhhh/p/12243444.html

#include<iostream>
#include<algorithm>
#include<cstring>
#include<cstdio>
using namespace std;
typedef long long ll;
const int M=1e5+;
ll a[M];
ll A,B;
int tot;
void init(ll N){
tot=;
ll NN=N;
for(ll i=;i*i<=NN;i++){
if(N%i==){
a[tot++]=i;
while(N%i==)
N/=i;
}
if(i>N)
break;
}
if(N>)
a[tot++]=N;
}
ll solve(ll x){
ll ans=;
for(ll i=;i<((ll)<<tot);i++){
ll sum=;
int num=;
for(ll j=;j<tot;j++){
if(i&((ll)<<j))
sum*=a[j],num++;
}
ll tmp=x/sum;
if(num&)
ans+=tmp;
else
ans-=tmp;
}
return x-ans;
}
int main(){
int t;
scanf("%d",&t);
while(t--){
scanf("%lld%lld",&A,&B);
ll g=__gcd(A,B);
A/=g;
B/=g;
init(B);
printf("%lld\n",solve(B+A-)-solve(A-));
}
return ;
}

容斥原理的(二进制思想和质因子分解+模板)hdu4135+ecf81.D的更多相关文章

  1. LightOJ1336 Sigma Function —— 质因子分解、约数和为偶数

    题目链接:https://vjudge.net/problem/LightOJ-1336 1336 - Sigma Function    PDF (English) Statistics Forum ...

  2. BZOJ 1485: [HNOI2009]有趣的数列 [Catalan数 质因子分解]

    1485: [HNOI2009]有趣的数列 Description 我们称一个长度为2n的数列是有趣的,当且仅当该数列满足以下三个条件: (1)它是从1到2n共2n个整数的一个排列{ai}: (2)所 ...

  3. A 洛谷 P3601 签到题 [欧拉函数 质因子分解]

    题目背景 这是一道签到题! 建议做题之前仔细阅读数据范围! 题目描述 我们定义一个函数:qiandao(x)为小于等于x的数中与x不互质的数的个数. 这题作为签到题,给出l和r,要求求. 输入输出格式 ...

  4. P2043 质因子分解

    P2043 质因子分解 题目描述 对N!进行质因子分解. 输入输出格式 输入格式: 输入数据仅有一行包含一个正整数N,N<=10000. 输出格式: 输出数据包含若干行,每行两个正整数p,a,中 ...

  5. POJ1845:Sumdiv(求因子和+逆元+质因子分解)好题

    题目链接:http://poj.org/problem?id=1845 定义: 满足a*k≡1 (mod p)的k值就是a关于p的乘法逆元. 为什么要有乘法逆元呢? 当我们要求(a/b) mod p的 ...

  6. P2043 质因子分解(阶乘的质因数分解)

    P2043 质因子分解 对$n!$进行质因数分解的一种高效算法 首先,筛出$<=n$的素数 蓝后,对$n$反复除以$prime$,同时$cnt+=n/prime$ $n!$中含有该$prime$ ...

  7. Lightoj-1356 Prime Independence(质因子分解)(Hopcroft-Karp优化的最大匹配)

    题意: 找出一个集合中的最大独立集,任意两数字之间不能是素数倍数的关系. 思路: 最大独立集,必然是二分图. 最大数字50w,考虑对每个数质因子分解,然后枚举所有除去一个质因子后的数是否存在,存在则建 ...

  8. luogu P2043 质因子分解

    题目描述 对N!进行质因子分解. 输入输出格式 输入格式: 输入数据仅有一行包含一个正整数N,N<=10000. 输出格式: 输出数据包含若干行,每行两个正整数p,a,中间用一个空格隔开.表示N ...

  9. LightOJ1138 —— 阶乘末尾0、质因子分解

    题目链接:https://vjudge.net/problem/LightOJ-1138 1138 - Trailing Zeroes (III)    PDF (English) Statistic ...

随机推荐

  1. java获取键盘事件

    转 <script type="text/javascript" language=JavaScript charset="UTF-8"> docu ...

  2. comm

    comm [- 123 ] file1 file2 说明:该命令是对两个已经排好序的文件进行比较.其中file1和file2是已排序的文件.comm读取这两个文件,然后生成三列输出:仅在file1中出 ...

  3. JAVAEE 和项目开发(第五课:服务器软件的介绍)

    Web服务器根据对javaEE支持的能力分为两大类 1,JavaEE服务器(应用服务器) 1) IBM公司 WebSphere 2) BEA公司 WebLogic 3) JBoss 公司 JBoss ...

  4. JDBC批处理方法

    每次新建Connection的时候相当于建了一座桥,每次一辆车(PreparedStatement)运送货物(ResultSet)成本太高! 每次都建立网络连接的时间远远大于本地的时间,为了处理大量的 ...

  5. openstack trove mongodb配置项

    systemLog.verbosity 组件的默认日志消息详细程度级别. 详细程度级别决定MongoDB输出的信息和调试消息量. 详细级别可以在0到5之间: 0是MongoDB的默认日志详细程度级别, ...

  6. Python说文解字_Python之多任务_03

    问:线程学完了,现在我们开始学习进程了吧? 答:是的.前面说到线程就是我们的手,我们现在可以学习一下我们的“胳膊”了. 我们有了多线程,为什么还要学习多进程呢?这是因为在Python当中有一把GIL锁 ...

  7. (2)MongoDB副本集自动故障转移全流程原理

    前文我们搭建MongoDB三成员副本集,了解集群基本特性,今天我们围绕下图聊一聊背后的细节. 默认搭建的replica set均在主节点读写,辅助节点冗余部署,形成高可用和备份, 具备自动故障转移的能 ...

  8. mysql float 这个大坑

    以后高精度的数据不要用这个字段  今天同事反应 应该是17390.7的数据 结果展示17390.6992  找了半天问题在哪 后来决定先不管  手动现在数据库改数据 结果手动改也改不过来  于是能确定 ...

  9. 修改maven默认仓库(即repository)的路径

    原文链接:https://blog.csdn.net/ideality_hunter/article/details/53006188 简要说明:主要操作为新建仓库路径,在maven的conf目录下修 ...

  10. 201709-1 打酱油 Java

    思路: 先看能不能买5瓶,因为送的最多,然后看能不能买3瓶,最后一瓶一瓶地买 import java.util.Scanner; public class Main { public static v ...