Танымал функция


Шешімді жөнелту

Ұпайлар: 1
Уақыт шектеуі: 1.5s
Жад шектеуі: 256M

Author:
Problem type
Рұқсат етілген тілдер
Assembly, Awk, Brain****, C, C++, Java, Pascal, Perl, Python, Sed, Text

Функция \(f(n,k)\) келесі түрде анықталады:

  • Егер \(k = 0\), онда \(f(n,0)\) \(n\)-ге тең немесе одан кіші және онымен өзара жай сандардың санына тең.

  • Егер \(k > 0\), онда \(f(n,k) = \sum_{d} f(d,k - 1)\), мұнда сумма \(n\) санының барлық бөлгіштері бойынша алынады.

Сізге бірнеше сұрау берілген, әрқайсысы екі бүтін сан \(n\) және \(k\) қамтиды. \(f(n, k)\)-ны \(10^9 + 7\) модулі бойынша есептеу қажет.

Енгізу

Әр тест бірнеше сұраулардан тұрады. Бірінші жолда бір бүтін сан \(t\)(\(1 \le t \le 2 \cdot 10^4\)) — сұраулардың саны. Одан кейін сұраулардың сипаттамасы беріледі.

Әр сұраудың жалғыз жолы екі бүтін сан \(n\) және \(k\) (\(1 \le n \le 10^9\), \(0 \le k \le 10^9\)) қамтиды.

Шығару

Әр сұрау үшін \(f(n, k)\)-ны \(10^9 + 7\) бөлгендегі қалдығын шығарыңыз.

Мысалдар

Енгізу 1
3
6 0
10 1
5 3
Жауап 1
2
10
7

Пікірлер

Қазіргі уақытта ешқандай пікір жоқ.