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;
}