用对数做的,84分
#include<iostream>
#include<cmath>
using namespace std;
int main(){
long long w,r,l;
cin>>l>>r>>w;
if(l==0){
l=1;
}
long double m=log(w),n=log(r),x=log(l);
n=n*1.0/m;
x=x*1.0/m;
if(n-x<1&&ceil(x)!=floor(n)){
cout<<-1;
return 0;
}
int z=floor(n),k=ceil(x);
for(int i=k;i<=z;i++){
cout<<(long long)pow(w,i)<<' ';
}
}