题意:自己看
水题,注意细节
就比较毒瘤
#include<cstdio>
#include<cstdlib>
#include<cctype>
#include<cmath>
#include<cstring>
#include<iostream>
#include<algorithm>
using namespace std;
#define getchar() (frS==frT&&(frT=(frS=frBB)+fread(frBB,1,1<<12,stdin),frS==frT)?EOF:*frS++)
char frBB[1<<12]={},*frS=frBB,*frT=frBB;
#define ll long long
int T;
bool f=0;
ll ans;
ll l,r,k,out;
inline ll read()
{
ll x=0;bool w=0;char ch=getchar();
while(!isdigit(ch))w|=(ch=='-'),ch=getchar();
while(isdigit(ch))x=x*10+ch-'0',ch=getchar();
return w?-x:x;
}
int main()
{
T=read();
while(T--)
{
l=read();r=read();k=read();
if(k==0) //细节1
{
if(l==0&&r>=1)printf("0 1\n");
else if(l==0&&r==0)printf("0\n");
else if(l==1)printf("1\n");
else printf("None.\n");
continue;
}
else if(k==1) //细节2
{
if(l<=1&&r>=1)printf("1\n");
else printf("None.\n");
continue;
}
f=0;
for(ans=1;ans<=r/k;ans*=k)if(ans>=l)printf("%lld ",ans),f=1;
if(l<=ans&&ans<=r)printf("%lld ",ans),f=1; //防爆
//注意不能把l和r给log掉直接搞,因为log(0)会炸。要写得特判。
if(!f)printf("None.");
printf("\n");
}
return 0;
}