#include<iostream> #include<cmath> int main() { int po[10]; for(int n=0;n<10;n++)po[n]=pow(n,2); long long a,b,k,x=0,y,z,i,j; std::cin>>k>>a>>b; if(a%k!=0)a=(a/k+1)*k; int df=log10(81*k)+2; if((81*k*df)<b)b=81*k*df; if(log10(b)<log(b+81*k)) b=b+81*k; for(long long n=a;n<=b;n=n+k){ z=(log10(n)+1); y=0; i=n; for(int c=z;c>=0;c--){ j=i/pow(10,c); y=y+po[j]; i=i-(j*pow(10,c)); if(y*k>n)c=0; } if(y*k==n){ x++; } } std::cout<<x; return 0; }
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 | #include<iostream> #include<cmath> int main() { int po[10]; for(int n=0;n<10;n++)po[n]=pow(n,2); long long a,b,k,x=0,y,z,i,j; std::cin>>k>>a>>b; if(a%k!=0)a=(a/k+1)*k; int df=log10(81*k)+2; if((81*k*df)<b)b=81*k*df; if(log10(b)<log(b+81*k)) b=b+81*k; for(long long n=a;n<=b;n=n+k){ z=(log10(n)+1); y=0; i=n; for(int c=z;c>=0;c--){ j=i/pow(10,c); y=y+po[j]; i=i-(j*pow(10,c)); if(y*k>n)c=0; } if(y*k==n){ x++; } } std::cout<<x; return 0; } |