만드는 중입니다

아직 만드는 중이라 바뀔 수 있습니다

2024는 무엇이 특별할까?

시간 제한2초메모리 제한1024 MB

요약
N과 K가 주어질 때, N 이하의 정수 중 2의 지수가 K인 수의 개수를 구합니다.
난이도

보통10점 중 4점

유형
수학, 정수론
정답자
아직 제출이 없습니다

문제

신년 대회의 개최일은 2024년 1월 14일이다. 정휘는 대회가 열린다는 사실이 기뻐 제목을 뚫어져라 보다가 2024에 무언가 특별한 점이 있다는 것을 깨달았다.

그렇다. τo(n)\tau_o(n)을 n의 약수이면서 홀수인 양의 정수의 개수, τe(n)\tau_e(n)을 nn의 약수이면서 짝수인 양의 정수의 개수라고 할 때, τe(2024)=3τo(2024)\tau_e(2024) = 3\tau_o(2024)을 만족한다. 다음에 이런 연도가 오려면 16년 뒤인 2040년이 되어야 한다.

τe(x)=K×τo(x)\tau_e(x) = K \times \tau_o(x)를 만족하는 양의 정수 xx를 KK-특별한 수라고 정의하자. 양의 정수 NN과 음이 아닌 정수 KK가 주어진다. NN 이하의 양의 정수 중 KK-특별한 수의 개수를 출력하는 프로그램을 작성하시오.

입력

첫째 줄에 테스트 케이스의 개수 TT가 주어진다.

이후 TT개의 줄에 걸쳐 테스트 케이스가 한 줄에 하나씩 주어진다. 각 테스트 케이스는 양의 정수 NN과 음이 아닌 정수 KK가 공백으로 구분되어 한 줄로 주어진다.

출력

각 테스트 케이스마다, 한 줄에 하나씩 NN 이하의 양의 정수 중 KK-특별한 수의 개수를 출력한다.

제한

  • 1≤T≤100 0001\le T\le 100\,000
  • 1≤N≤10181\le N\le 10^{18}
  • 0≤K≤10180\le K\le 10^{18}

예제1

  1. 예제 1

    입력
    5
    1 0
    9 2
    17 2
    20 3
    100 1000000000000000000
    
    예상 출력
    1
    1
    2
    1
    0