[原创]BestCoder Round #84 &&HDU 5750 Dertouzos 【数论+暴力】
[原创]BestCoder Round #84 &&HDU 5750 Dertouzos 【数论+暴力】
2016-07-23 23:14:02 Tabris_ 阅读数:871
博客爬取于2020-06-14 22:44:07
以下为正文
版权声明:本文为Tabris原创文章,未经博主允许不得私自转载。
https://blog.csdn.net/qq_33184171/article/details/52008038
题目连接:http://acm.hdu.edu.cn/showproblem.php?pid=5750
-----------------------------------------.
Dertouzos Accepts: 76 Submissions: 1357
Time Limit: 7000/3500 MS (Java/Others) Memory Limit: 131072/131072 K (Java/Others)
问题描述
正整数称为的positive proper divisor, 当且仅当并且. 例如, 1, 2, 和3是6的positive proper divisor, 但是6不是.
Peter给你两个正整数和. 他想要知道有多少小于的整数, 满足他们的最大positive proper divisor恰好是.
输入描述
输入包含多组数据, 第一行包含一个整数表示测试数据组数. 对于每组数据:
第一行包含两个整数和$ (2 \le n, d \le 10^9)$
输出描述
对于每组数据, 输出一个整数.
输入样例
9
10 2
10 3
10 4
10 5
10 6
10 7
10 8
10 9
100 13
输出样例
1
2
1
0
0
0
0
0
4
----------------------------------------------------.
题目大意: 自己看
解题思路:
首先要明确的是 NM的最大因子为N的时候只有M为素数 且M<=N的最小素因子的时候 ;
试想 $N=p_1^{a_1}p_2^{a_2}p_3^{a_3}p_4^{a_4} …… p_n^{a_n} ; (p[i] < p[i+1]) $
如果M不是素数那么M=XY,NM的因子中 就多了NX和NY 均比N大 所以不成立
如果M>p1 (假设所有的ai均为1)那么N*M的因子中 就多了 一定大于 所以也不成立 至于某个的时候同理
也不行
所以先打出sqrt(1e9)内的所有素数
然后暴力找即可
1 | for(int i=0;i<k;i++) |
k值不到1e4 加上题目3500ms 就能过了
附上本题代码
----------------------------------------------------------.
1 | # include <iostream> |