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

using namespace std;
int main()
{
	unsigned long long k,a,b,n,wynik;
	short cyfra,na_pewno_nie;
	short kwadraty_cyfr[] = {0,1,4,9,16,25,36,49,64,81};
	unsigned long long suma_kwadratow_cyfr,suma_kwadratow_cyfr_granica;
	
	cin >> k;
	cin >> a;
	cin >> b;
	wynik=0;

	for (unsigned long long int i = a; i <=b; i++)
	{
		n=i;
		suma_kwadratow_cyfr=0;
		suma_kwadratow_cyfr_granica=(i/k)+1;
		na_pewno_nie=0;
		for(n=i; n>0; n=n/10)
		{
			cyfra=n%10;
			suma_kwadratow_cyfr=suma_kwadratow_cyfr+kwadraty_cyfr[cyfra];
			if(suma_kwadratow_cyfr>suma_kwadratow_cyfr_granica)
			{
				na_pewno_nie=1;
				break;
			}
		}
		if(na_pewno_nie==0 && i==suma_kwadratow_cyfr*k) wynik++;
	}
 
	cout << wynik;
	return 0;
}