题目描述
我们知道,从区间 [L,H](L 和 H 为整数)中选取 N 个整数,总共有 (H−L+1)N 种方案。小 Z 很好奇这样选出的数的最大公约数的规律,他决定对每种方案选出的 N 个整数都求一次最大公约数,以便进一步研究。然而他很快发现工作量太大了,于是向你寻求帮助。你的任务很简单,小 Z 会告诉你一个整数 K,你需要回答他最大公约数刚好为 K 的选取方案有多少个。由于方案数较大,你只需要输出其除以 1000000007 的余数即可。
输入格式
输入一行,包含四个以空格分开的正整数,依次为 N,K,L 和 H。
输出格式
输出一个整数,为所求方案数。
样例
2 2 2 4
3
所有可能的选择方案:(2,2),(2,3),(2,4),(3,2),(3,3),(3,4),(4,2),(4,3),(4,4)。
其中最大公约数等于 2 的只有三组:(2,2),(2,4),(4,2)。
数据范围与提示
对于 100% 的数据,1≤N,K≤109, 1≤L≤H≤109, H−L≤105。