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
#include<iostream>
#include<cmath>
#include<cstdio>
#include<cstdio>
#include<string>

using namespace std;

int main()
{
	long long int k, a, b, x = 0, licznik = 0, licznik2 = 0, v, n;
	float z;
	bool test = false;


	do
	{

		cout << "Podaj k, a i b, oddzielajac kazda liczbe klawiszem enter." << endl;
		cin >> k >> a >> b;

		if (1 <= k && 1 <= a && 1<= b && k <= pow(10, 18) && a <= pow(10, 18) && b <= pow(10, 18) && a <= b)
		{
			test = true;
		}


	} while (test != true);

	
	
	for (int i = a;i <= b; i++)
	{

		v = i;

		for (int p = 18; p>=0; p--)
		{

			z = v / pow(10, p);

			if (floor(z) > 0)
			{
				x = pow(floor(z), 2);
				licznik = x + licznik;
				v = v - (floor(z)*pow(10, p));
			}
		}

		n = k*licznik;

		if (a <= n && n <= b && n == i)
		{
			licznik2++;
		}

		licznik = 0;

	}

	cout << endl << "Liczba rozwiazan rownania: " << licznik2;

	cin.ignore();
	getchar();
	return 0;
}