#include <iostream> #include <vector> #include <map> unsigned f(const unsigned long long); int main() { std::ios_base::sync_with_stdio(false); std::cin.tie(NULL); unsigned long long k, a, b, answer = 0; std::cin >> k >> a >> b; for(unsigned long long n = k, t = 0; t < 18*81 && n <= b; ++t, n += k) { if(n < a) { continue; } if(k * f(n) == n) { answer += 1; } } std::cout << answer << '\n'; } unsigned square(const unsigned n) { return n*n; } unsigned f(const unsigned long long n) { if(n == 0) return 0; return square(n%10) + f(n/10); }
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 | #include <iostream> #include <vector> #include <map> unsigned f(const unsigned long long); int main() { std::ios_base::sync_with_stdio(false); std::cin.tie(NULL); unsigned long long k, a, b, answer = 0; std::cin >> k >> a >> b; for(unsigned long long n = k, t = 0; t < 18*81 && n <= b; ++t, n += k) { if(n < a) { continue; } if(k * f(n) == n) { answer += 1; } } std::cout << answer << '\n'; } unsigned square(const unsigned n) { return n*n; } unsigned f(const unsigned long long n) { if(n == 0) return 0; return square(n%10) + f(n/10); } |