[原创]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)
问题描述
正整数$x$称为$n$的positive proper divisor, 当且仅当$x | n$并且$1 \le x < n$. 例如, 1, 2, 和3是6的positive proper divisor, 但是6不是.
Peter给你两个正整数$n$和$d$. 他想要知道有多少小于$n$的整数, 满足他们的最大positive proper divisor恰好是$d$.
输入描述
输入包含多组数据, 第一行包含一个整数$T (1 \le T \le 10^6)$表示测试数据组数. 对于每组数据:
第一行包含两个整数$n$和$d$$ (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=X*Y,N*M的因子中 就多了N*X和N*Y 均比N大 所以不成立
如果M>p1 (假设所有的ai均为1)那么NM的因子中 就多了 $M * p_2 * p_3 * p_4 * …… *p_n$ 一定大于 $p_1 * p_2 * p_3 * p_4 * …… *p_n$ 所以也不成立 至于某个$a_i>1$的时候同理
也不行
所以先打出sqrt(1e9)内的所有素数
然后暴力找即可
for(int i=0;i<k;i++) |
k值不到1e4 加上题目3500ms 就能过了
附上本题代码
----------------------------------------------------------.
# include <iostream> |


