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
#include <stdio.h>

int w[10] = {0,1,4,9,16,25,36,49,64,81};

int main(void)
{
 unsigned long long k,a,b;
 unsigned long long max = 1458,l,s,x;
 int i=0;
 scanf("%llu %llu %llu",&k,&a,&b);
 if(b/k <= max)
 {
  max = b;  
 } else {
  max *=k;
 }
 l = (a%k)?(a/k+1)*k:a;
 while(l<=max)
 {
  //kwadraty
  x=l;
  s=0;
  while(x)
  {
   s+=w[x%10];
   x/=10;
  }
  if(s*k == l)++i;
  l+=k;
 }
 printf("%d\n",i);
 return 0;
}