标题叙述性说明:

1<=a,b<=10^18,p,q他们是素数  2<=p,q<=10^9;

求在[a,b]内能够表示为  x*p^k*q^m  k > m   的数的个数

分析:

因为要小于b。因此m一定小于 log10(b)/log10(p*q);

因此我们能够枚举m。中间计数的时候须要用到容斥。

详细看代码:

#include <iostream>
#include <cstdio>
#include <cmath>
#include <cstring>
#include <algorithm>
using namespace std; typedef long long LL; LL mypow(LL a,int b)
{
LL ans = 1;
while(b){
if(b&1){
ans=ans*a;
b--;
}
b>>=1;
a=a*a;
}
return ans;
} int main()
{
LL a,b,p,q;
while(~scanf("%lld%lld%lld%lld",&a,&b,&p,&q)){
int mmax = log10(b*1.0)/log10(p*q*1.0)+1;
LL ans = 0;
for(int i=0;i<=mmax;i++){
if(mypow(p,i+1)>b*1.0/mypow(q,i))//防止爆long long
break;
for(int j=i+1;j<64;j++){
if(mypow(p,j)>b*1.0/mypow(q,i)) break;//防止爆long long
LL tmp=mypow(p,j)*mypow(q,i);
LL cnt1 = b/tmp,cnt2=(a-1)/tmp;//因为是闭区间 因此要用a-1;
ans += cnt1;
ans -= cnt2;
ans -= cnt1/p;
ans -= cnt1/q;
ans += cnt1/p/q;
ans += cnt2/p;
ans += cnt2/q;
ans -=cnt2/p/q;
}
}
printf("%lld\n",ans);
}
return 0;
}

版权声明:本文博客原创文章,博客,未经同意,不得转载。

乞讨 间隔[a,b]在见面p^k*q*^m(k&gt;m)中数号码的更多相关文章

  1. K近邻(K Nearest Neighbor-KNN)原理讲解及实现

    算法原理 K最近邻(k-Nearest Neighbor)算法是比较简单的机器学习算法.它采用测量不同特征值之间的距离方法进行分类.它的思想很简单:如果一个样本在特征空间中的k个最近邻(最相似)的样本 ...

  2. [K/3Cloud]关于K/3 Cloud v2.0升级补丁的疑问

    现在除了K/3 Cloud v2.0的正式版之外,后续又发布了SP1和SP2补丁包.改善了一些问题和BUG,有些人之前可能之前装了SP1,有的可能没装过.在这里我说明一下: 不管装没装过补丁直接打SP ...

  3. K近邻分类法

    K近邻法 K近邻法:假定存在已标记的训练数据集,分类时对新的实例根据其K个最近邻的训练实例的类别,通过多数表决等分类决策规则进行预测. k近邻不具有显示学习的过程,是“懒惰学习”(lazy learn ...

  4. K米测试

    K米评测 ------K米IOS4.3.0体验之旅 第一部分 :调研,评测 第一次上手体验:  像大多数同学一样,这也是我第一次使用k米这一类型的ktv点歌软件.我算是比较经常接触唱k的人,身边的朋友 ...

  5. k临近法的实现:kd树

    # coding:utf-8 import numpy as np import matplotlib.pyplot as plt T = [[2, 3], [5, 4], [9, 6], [4, 7 ...

  6. 通用js函数集锦<来源于网络> 【二】

    通用js函数集锦<来源于网络> [二] 1.数组方法集2.cookie方法集3.url方法集4.正则表达式方法集5.字符串方法集6.加密方法集7.日期方法集8.浏览器检测方法集9.json ...

  7. USACO翻译:USACO 2013 DEC Silver三题

    USACO 2013 DEC SILVER 一.题目概览 中文题目名称 挤奶调度 农场航线 贝西洗牌 英文题目名称 msched vacation shuffle 可执行文件名 msched vaca ...

  8. Python学习记录day5

    title: Python学习记录day5 tags: python author: Chinge Yang date: 2016-11-26 --- 1.多层装饰器 多层装饰器的原理是,装饰器装饰函 ...

  9. C/C++ 笔试题

    /////转自http://blog.csdn.net/suxinpingtao51/article/details/8015147#userconsent# 微软亚洲技术中心的面试题!!! 1.进程 ...

随机推荐

  1. linux下如何获取每个线程的CPU占用率

    啥也不说,直接上脚本: root@Storage:/mnt/mtd# cat cpu.sh #!/bin/sh while truedo        ps -H -eo user,pid,ppid, ...

  2. ASCII,Unicode和UTF-8终于找到一个能完全搞清楚的文章了

    前言 平时喜欢写东西,看博客,一直对编码有些懵,今天下午也不知道看到了什么,突然想了解下,就找到了这个文章,看完真的豁然开朗,这个必须留下来做纪念. 点击打开链接 1.ASCII 我们知道,计算机内部 ...

  3. Android JNI 自定义对象为参数和返回值

    ndroid JNI 提供了很强大的支持,不仅可以采用基本类型做为参数和返回值,同时也支持自定义对象做为参数和返回值,以下举例说明. 一.定义作为输入和返回的自定义类 (仅提供两个简单类型和一个打印函 ...

  4. php实现 句子逆序(需求才是最好的老师)

    php实现 句子逆序(需求才是最好的老师) 一.总结 一句话总结:需求才是最好的老师. 1.str_split()和explode()的区别? explode — 使用一个字符串分割另一个字符串 3 ...

  5. 小强的HTML5移动开发之路(45)——汇率计算器【1】

    这两天看了<PhoneGap实战>上面有一个汇率计算器的例子,个人觉得比较好,就拿出来和大家分享一下,在接下来的几篇文章中我们来一起完成这个PhoneGap + Jquery mobile ...

  6. 小强的HTML5移动开发之路(42)——HTML4与HTML5文档结构比较

    一般来说,人们在书写包括HTML在内的文档时,习惯上按照类似于"章--节--小节"这样的层次结构来进行. 在HTML4中的描述方式: <html> <head&g ...

  7. TOP 10 ONLINE COMPILER

    Top 10 Online Compilers +1338 Tweet Share106 Share Pin 444 Shares Online compilers are one type of t ...

  8. C++生成GIF小结

    声明:所有权利保留. 转载必须说明出处:http://blog.csdn.net/cartzhang/article/details/44020175 近来需要把BMP或Kinect的内存图片多张合成 ...

  9. 简洁常用权限系统的设计与实现(六):不维护节点的深度level,手动计算level,构造树 (把一颗无序的树,变成有序的)

     本篇介绍的方法,参考了网上的代码.在递归过程中,计算level,是受到了这种方法的启发. CSDN上有篇关于树的算法,目标是把一个无序的树,变成有序的. 我看了下代码,并运行了下,感觉是可行的. 我 ...

  10. 【NOIP2012提高组】开车旅行 倍增

    题目分析 朴素的做法就是预处理下一个目的地,然后跑模拟,超时. 本题最重要的考点是倍增优化.设$fa[i][j]$表示a从i出发行驶$2^j$“次”后行驶的路程,$fb[i][j]$表示从i出发行驶$ ...