#include <iostream>
#include <vector>
using namespace std;
std::vector<long long> potegi = {0, 1, 4, 9, 16, 25, 36, 49, 64, 81};
bool isOK(long long n)
{
long long tmpCounter = 0, tmpN = n;
while(tmpN)
{
tmpCounter = tmpCounter + potegi[tmpN % 10];
tmpN = tmpN/10;
}
if(tmpCounter == n)
return true;
else
return false;
}
int main()
{
long long k, a, b;
std::cin >> k >> a >> b;
for (auto& it: potegi)
{
it = it * k;
}
long long n = a, counter = 0;
for(; n <= b; n++)
{
if(isOK(n))
{
counter++;
}
}
std::cout << counter;
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 30 31 32 33 34 35 36 37 38 39 | #include <iostream> #include <vector> using namespace std; std::vector<long long> potegi = {0, 1, 4, 9, 16, 25, 36, 49, 64, 81}; bool isOK(long long n) { long long tmpCounter = 0, tmpN = n; while(tmpN) { tmpCounter = tmpCounter + potegi[tmpN % 10]; tmpN = tmpN/10; } if(tmpCounter == n) return true; else return false; } int main() { long long k, a, b; std::cin >> k >> a >> b; for (auto& it: potegi) { it = it * k; } long long n = a, counter = 0; for(; n <= b; n++) { if(isOK(n)) { counter++; } } std::cout << counter; return 0; } |
English