乞讨 间隔[a,b]在见面p^k*q*^m(k>m)中数号码
标题叙述性说明:
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>m)中数号码的更多相关文章
- K近邻(K Nearest Neighbor-KNN)原理讲解及实现
算法原理 K最近邻(k-Nearest Neighbor)算法是比较简单的机器学习算法.它采用测量不同特征值之间的距离方法进行分类.它的思想很简单:如果一个样本在特征空间中的k个最近邻(最相似)的样本 ...
- [K/3Cloud]关于K/3 Cloud v2.0升级补丁的疑问
现在除了K/3 Cloud v2.0的正式版之外,后续又发布了SP1和SP2补丁包.改善了一些问题和BUG,有些人之前可能之前装了SP1,有的可能没装过.在这里我说明一下: 不管装没装过补丁直接打SP ...
- K近邻分类法
K近邻法 K近邻法:假定存在已标记的训练数据集,分类时对新的实例根据其K个最近邻的训练实例的类别,通过多数表决等分类决策规则进行预测. k近邻不具有显示学习的过程,是“懒惰学习”(lazy learn ...
- K米测试
K米评测 ------K米IOS4.3.0体验之旅 第一部分 :调研,评测 第一次上手体验: 像大多数同学一样,这也是我第一次使用k米这一类型的ktv点歌软件.我算是比较经常接触唱k的人,身边的朋友 ...
- k临近法的实现:kd树
# coding:utf-8 import numpy as np import matplotlib.pyplot as plt T = [[2, 3], [5, 4], [9, 6], [4, 7 ...
- 通用js函数集锦<来源于网络> 【二】
通用js函数集锦<来源于网络> [二] 1.数组方法集2.cookie方法集3.url方法集4.正则表达式方法集5.字符串方法集6.加密方法集7.日期方法集8.浏览器检测方法集9.json ...
- USACO翻译:USACO 2013 DEC Silver三题
USACO 2013 DEC SILVER 一.题目概览 中文题目名称 挤奶调度 农场航线 贝西洗牌 英文题目名称 msched vacation shuffle 可执行文件名 msched vaca ...
- Python学习记录day5
title: Python学习记录day5 tags: python author: Chinge Yang date: 2016-11-26 --- 1.多层装饰器 多层装饰器的原理是,装饰器装饰函 ...
- C/C++ 笔试题
/////转自http://blog.csdn.net/suxinpingtao51/article/details/8015147#userconsent# 微软亚洲技术中心的面试题!!! 1.进程 ...
随机推荐
- Android内存优化杂谈
Android内存优化是我们性能优化工作中比较重要的一环,这里其实主要包括两方面的工作: 优化RAM,即降低运行时内存.这里的目的是防止程序发生OOM异常,以及降低程序由于内存过大被LMK机制杀死的概 ...
- stm32的APB1和APB2时钟
要学会看官方例子,还要查找官方程序...
- sublime课程3 sublime编辑器的常用设置有哪些
sublime课程3 sublime编辑器的常用设置有哪些 一.总结 一句话总结:其实功能的话可以直接取配置里面搜索关键词,所以搜索是神技. 1.sublime如何开启背景线? "highl ...
- Jquery浅克隆与深克隆是什么
Jquery浅克隆与深克隆是什么 一.总结 一句话总结:克隆的那些标签内容就是对应元素的html,事件就是那些绑定的事件. 1.jquery克隆的时候的注意事项是什么? 元素数据(data)内对象和数 ...
- Opencv距离变换distanceTransform应用——细化字符轮廓&&查找物体质心
Opencv中distanceTransform方法用于计算图像中每一个非零点距离离自己最近的零点的距离,distanceTransform的第二个Mat矩阵参数dst保存了每一个点与最近的零点的距离 ...
- python opencv3 —— findContours
findContours 是 opencv 下的轮廓提取函数. 1. api 分析 findContours(image, mode, method[, contours[, hierarchy[, ...
- innodb_data_file_path参数误修改解决方法
如果innodb_data_file_path参数被修改乱了,不知道原来值的大小,这样启动是会报错的.知道原来大小方法: 方法一:操作系统下ls -l看到原来大小,直接用ls -l显示的大小,复制即可 ...
- [React] Normalize Events with Reacts Synthetic Event System
Event handlers are passed an instance of SyntheticEvent in React. In this video we'll take a look at ...
- android之ContentProvider和Uri具体解释
一.使用ContentProvider(内容提供者)共享数据 在android中ContentProvider的作用是对外共享数据,就是说能够通过ContentProvider把应用中的数据共享给其它 ...
- phpstorm常用快捷键有哪些(图解归类)
phpstorm常用快捷键有哪些(图解归类) 一.总结 一句话总结: 10.方法参数提示,显示默认参数 解答:--------CTRL+P 13.显示类层级关系图,继承/实现关系 解答:--- ...