思路:
对于1-X来说 可以整除Y的必定是 Y的倍数。
之后如果除掉Y之后仍然是Y的倍数的,那么一定是Y的Y*Y*....,
而1-X里有多少个Y*Y的数呢,就又返回到上一个问题了,之后又有可能是Y*Y*Y的整数倍,再次返回。
#include <iostream>
#include <stdio.h>
using namespace std;
int main()
{
int n;
cin>>n;
while(n--)
{
int x,y;
cin>>x>>y;
int sum=0;
sum+=x/y;
int temp=y;
while(1)
{
temp=temp*y;
if(x/temp==0)
{
break;
}
sum+=x/temp;
}
cout<<sum<<endl;
}
return 0;
}
70题,只要把int 换成long long即可