洛谷 P15798:[GESP202603 五级] 有限不循环小数
【题目来源】
【题目描述】
若 1/a 可化为一个有限的,不循环的小数,则称 a 为终止数。
请你求出在 L 到 R 中终止数的数量。
【输入格式】
输入一行,包含两个整数 L,R。
【输出格式】
输出一行,包含一个整数,表示 L 到 R 中终止数的数量。
【输入样例】
2 11
【输出样例】
5
【数据范围】
保证 1≤L≤R≤10^6。
【样例解释】
在 [2,11] 终止数有 2、4、5、8、10。
【算法分析】
● 一个分数 p/q 在“最简形式”下,如果分母只包含质因子 2 和 5,则小数有限。如果分母包含其他质因子,则小数循环。例如,2/20=1/10=1/(2×5),小数有限。3/18=1/6=1/(2×3),小数循环。
● 显然,问题可转化为统计区间 [le,ri] 中形如 2^x × 5^y 的数的个数。
● 输出一个整数所有质因子的代码()
【算法代码一:沈士杰】
【算法代码二:贾钧睿】
其中,此代码中的 2048000000000 来源于下面代码的计算。
【算法代码三】
【参考文献】

浙公网安备 33010602011771号