#include <stdio.h>
#include <stdlib.h>
#include <math.h>
int main()
{
int N;
int *a;
int counter=0,i=0;
int num;
int m = 0;
int n;
int mark = 1;
scanf("%d",&N);
fflush(stdin);
a=(int *)malloc(sizeof(int)*N*2);
while (i < 2*N)
{
scanf("%d",&a[i++]);
}
for (i = 0;i<2*N;i+=2)
{
counter=0;
for(n=a[i+1];n<=a[i]; n+=a[i+1])
{
m = 1;
mark = 1;
num = pow(a[i+1],m);
while( num <= n)
{
++m;
if(n%num == 0 && num <= n)
{
mark = m-1;
}
num = pow(a[i+1],m);
}
counter += mark;
}
printf("%d\n",counter);
}
return 0;
}
#include <stdlib.h>
#include <math.h>
int main()
{
int N;
int *a;
int counter=0,i=0;
int num;
int m = 0;
int n;
int mark = 1;
scanf("%d",&N);
fflush(stdin);
a=(int *)malloc(sizeof(int)*N*2);
while (i < 2*N)
{
scanf("%d",&a[i++]);
}
for (i = 0;i<2*N;i+=2)
{
counter=0;
for(n=a[i+1];n<=a[i]; n+=a[i+1])
{
m = 1;
mark = 1;
num = pow(a[i+1],m);
while( num <= n)
{
++m;
if(n%num == 0 && num <= n)
{
mark = m-1;
}
num = pow(a[i+1],m);
}
counter += mark;
}
printf("%d\n",counter);
}
return 0;
}