1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 59 60 61 62 63 64 65 66 67 68 69 70 71 |
#include <iostream> #include <cstdio> #include <cstring> #include <string> #include <vector> #define ll long long using namespace std; ll arr[40001]; vector<int> vb; ll _pow(int pwr) { if(pwr==0) return 1; else return 10*_pow(pwr-1); } bool Isfunc(ll a,int b) { int tmp; tmp=a; int pwr=0; int num=0; while(tmp) { num=num + (tmp%10)*_pow(pwr); tmp/=10; if(tmp+num==b && tmp!=0 && num!=0) return 1; pwr+=1; } return 0; } int main() { int lw,hi; int t; int kase=1; vb.push_back(9); vb.push_back(45); vb.push_back(55); for(int i=91;i<=40000;i++) { if(Isfunc(i*i,i)) vb.push_back(i); } //cout<<vb.size()<<"\n"; scanf("%d",&t); while(t--) { scanf("%d%d",&lw,&hi); printf("case #%d\n",kase++); bool found=0; for(int i=0;i<19;i++) { if(vb[i]>=lw && vb[i]<=hi) found=1, printf("%d\n",vb[i]); } if(found==0) printf("no kaprekar numbers\n"); if(t) printf("\n"); } return 0; } |