链接:http://acm.hdu.edu.cn/showproblem.php?pid=5750

题意:中文题意。

分析:用类似均摊的方法在遍历素数的时候加上n/d这个限制会优化。

代码:

#include<map>
#include<set>
#include<cmath>
#include<queue>
#include<bitset>
#include<math.h>
#include<vector>
#include<string>
#include<stdio.h>
#include<cstring>
#include<iostream>
#include<algorithm>
#pragma comment(linker, "/STACK:102400000,102400000")
using namespace std;
const int N=40010;
const int mod=100000000;
const int MOD1=1000000007;
const int MOD2=1000000009;
const double EPS=0.00000001;
typedef long long ll;
const ll MOD=1000000007;
const int MAX=2000000010;
const ll INF=1ll<<55;
const double pi=acos(-1.0);
typedef double db;
typedef unsigned long long ull;
int k,a[N],q[N],f[N];
void deal(int n) {int i,j;k=0;for (i=2;i<=n;i++) {if (!q[i]) a[++k]=i;for (j=1;j<=k;j++) {if (a[j]*i>n) break ;q[a[j]*i]=1;if (i%a[j]==0) break ;}}
}
int main()
{int i,t,l,r,mid;ll n,d,g;scanf("%d", &t);deal(40000);while (t--) {scanf("%I64d%I64d", &n, &d);if (d>=n||d*2ll>=n) printf("0\n");else {for (i=1;i<=3450&&a[i]<=n/d;i++)if (a[i]>d||d%a[i]==0) break ;if (a[i]>d) g=1ll*a[i-1];else g=1ll*a[i];l=1;r=k;mid=(l+r)>>1;while (l+1<r)if (1ll*a[mid]>g||1ll*a[mid]*d>=n) { r=mid;mid=(l+r)>>1; }else { l=mid;mid=(l+r)>>1; }printf("%d\n", l);}}return 0;
}

最新文章

  1. matplotlib.pyplot中add_subplot方法参数111的含义
  2. 团队作业6-项目总结
  3. 电厂运维的cis数据_变配电智能化运维作用和优点,智慧供配电物联网
  4. java使用教程——组件及事件处理——菜单(添加图标)
  5. Beetl 模板引擎学习
  6. Windows Phone 实用开发技巧(18):使用SystemTray显示全局消息提醒
  7. 3D Object Detection入门——PointRCNN代码学习
  8. 关于c++的return
  9. 在MyEclipse中安装SVN插件subclipse
  10. 计算机职业规划作文1000字左右,职业生涯规划_1000字
  11. Excel 列累加技巧
  12. 和计算机 玩猜拳游戏的程序,计算机猜拳游戏
  13. 用显卡测试软件蓝屏,简单几步解决w10更新显卡驱动后重启蓝屏的问题
  14. 2021年机修钳工(中级)考试资料及机修钳工(中级)新版试题
  15. html用渐变做彩虹,photoshop如何用渐变制作彩虹
  16. iphone有关QQ和微信无法收到推送通知的终极解决方案
  17. vlc播放g711 rtp流媒体sdp文件及其参数介绍
  18. matlab状态空间模型构建函数ss
  19. domoticz用手机摄像头实现家庭监控
  20. ☀️手把手教你Python+matplotlib模拟锁相放大器的原理以及工作过程☀️《❤️记得收藏❤️》

热门文章

  1. r语言如何计算t分布临界值_医学统计与R语言:超几何分布(Hypergeometric distribution)与Fisher精确检验...
  2. Android 各版本gradle下载地址
  3. 如何用matlab求解多变量非线性回归,matlab多元非线性回归教程
  4. 得空写的基于web的工作流表单设计器,大家看看怎么样
  5. flash 火狐总是崩溃_火狐浏览器Adobe Flash崩溃怎么办?最终解决方法
  6. c语言角度换成弧度的编码,角度弧度转换代码
  7. ArcBlock 赴美国华盛顿州议会作证支持区块链立法
  8. String转十六进制,十六进制转String,字符串转十六进制,十六进制转字符串
  9. 服务器常用的操作系统有哪些
  10. 技巧:如何提高git下载速度